Play Framework 2.5 - Обратный маршрут к переменной в файле .java из файла scala.html

Я пытаюсь реорганизовать свои файлы Controllers и scala.html, чтобы уменьшить количество параметров, которые я передаю из классов контроллера Java в файлы внешнего интерфейса scala.html.

Мой план состоит в том, чтобы реорганизовать код, чтобы вместо передачи переменных из класса Java в scala.html файлы scala.html могли вернуться обратно к переменным в файлах Java.

Например. а не это:

@(someInteger: Int, someString: String, stringList: List[String], anotherInteger: Int)

Просто есть одна или две переменные:

@(someInteger: Int, someString: String)

И используйте обратные маршруты для других переменных, где это необходимо в файле scala.html, например:

@routes.SomeController.SomeMethod

Кроме того, я хотел бы добавить сравнение scala в файл scala.html для некоторых из этих переменных, таких как:

@if(@routes.SomeController.SomeMethod == true){
    ...
}

Вышеприведенное работает при передаче из классов контроллера Java в виде переменных scala, но не (в настоящее время) при попытке изменить маршрут из scala.html.

Стоит отметить, что маршрут /GET для controllers.SomeController.SomeMethod был настроен в файле conf/routes, я думаю, что это синтаксическая или логическая проблема.

Любая помощь в доступе к переменным путем обратной маршрутизации из scala.html будет принята с благодарностью!


person mvee    schedule 30.03.2017    source источник


Ответы (1)


На ваших контроллерах вы можете использовать карту, прикрепленную к текущему запросу, например: ctx().args.put("key", "value");

В своих представлениях вы можете получить доступ к данным, размещенным на карте, следующим образом: @Controller.ctx().args.get("key").

person pedroct92    schedule 30.03.2017
comment
Это похоже на другой синтаксис, чем я привык, вы уверены, что это синтаксис для обратного маршрута к переменным (отдельные целые или строковые переменные, а не карты) для игры 2.5? Скажем, у меня есть метод в одном из классов контроллера, который возвращает int, как мне получить доступ к этому методу из файла scala.html, чтобы его можно было вывести, например, в представление? - person mvee; 31.03.2017
comment
Да, это 2,5. javadocs единственный способ, который я использую для передачи данных из контроллера в представление без использования параметров. Вы также можете пройти через экземпляр form, но я не думаю, что это будет хорошо в вашем случае. - person pedroct92; 31.03.2017
comment
хорошо, спасибо, я попробую реализовать это и дам вам знать, как у меня дела :) - person mvee; 31.03.2017