我目前session()
在我的模板中使用 of play 框架:
@if(session().get("email")==null){
<li><a href="@controllers.routes.General.login">Login</a></li>
}else{
<li><a href="@controllers.routes.General.logout">Logout</a></li>
}
我的所有观点都使用了这个模板。其中一些视图由 Java 控制器控制,而另一些则由 Scala 控制器控制。
当我单击指向 Java 控制器的链接时,我没有任何问题,登录和注销的链接得到了正确处理。
当我单击指向 Scala 控制器的链接时,我得到一个 [RuntimeException: There is no HTTP Context available from here.]
从我在这里读到的关于 scala 控制器的内容中,我了解到它们在呈现页面时没有返回 http 上下文,但我真的希望能够在我的模板中使用会话。
我想过session()
在我的视图、模板和控制器中使用一个参数,但我相信java会话(play.mvc.http.session)和scala会话(play.api.mvc.session)之间会有冲突play 将编译 html 页面。
我卡住了吗?是否有可能强制 scala 控制器返回 http 上下文?