Play Framework 2.5 - 从scala.html文件反向到.java文件中的变量的路由

时间:2017-03-30 16:36:13

标签: java scala playframework twirl

我正在尝试重构我的控制器和放大器scala.html文件,以减少我从Java控制器类传递到scala.html前端文件的参数数量。

我的计划是重构代码,以便scala.html文件可以反向路由回Java文件中的变量,而不是将变量从Java类传递到scala.html。

E.g。而不是这个:

@(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控制器类作为scala变量传入时,上述工作原理,但在尝试从scala.html反向路由时(当前)没有。

值得注意的是,CONTROL.SomeController.SomeMethod的/ GET路由已在conf / routes文件中设置,我认为这是一个语法或逻辑问题。

非常感谢scala.html通过反向路由访问变量的任何帮助!

1 个答案:

答案 0 :(得分:0)

在您的控制器上,您可以使用附加到当前请求的地图,如下所示:ctx().args.put("key", "value");

在您的观看次数中,您可以访问您在地图上放置的数据,如下所示: @Controller.ctx().args.get("key")