我正在尝试重构我的 Controller 和 scala.html 文件,以减少从 Java Controller 类传递到 scala.html 前端文件的参数数量。
我的计划是重构代码,以便 scala.html 文件可以反向路由回 Java 文件中的变量,而不是将变量从 Java 类传递到 scala.html。
例如而不是这个:
@(someInteger: Int, someString: String, stringList: List[String], anotherInteger: Int)
只有一两个变量:
@(someInteger: Int, someString: String)
并在 scala.html 文件中需要的其他变量使用反向路由,如下所示:
@routes.SomeController.SomeMethod
另外,我想在 scala.html 文件中添加与其中一些变量的 scala 比较,例如:
@if(@routes.SomeController.SomeMethod == true){
...
}
当从 Java Controller 类作为 scala 变量传入时,上述方法有效,但(目前)在尝试从 scala.html 反向路由时无效。
值得注意的是,controllers.SomeController.SomeMethod 的/GET 路由已在conf/routes 文件中设置,我认为这是一个语法或逻辑问题。
任何通过从 scala.html 反向路由访问变量的帮助将不胜感激!
最佳答案
在 Controller 上,您可以使用附加到当前请求的 map ,如下所示:ctx().args.put("key", "value");
在您的 View 中,您可以访问放置在 map 上的数据,如下所示:
@Controller.ctx().args.get("key")
。
关于java - Play Framework 2.5 - 从 scala.html 文件反向路由到 .java 文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43123635/