我需要在视图中创建url时隐式传递一些变量。
我在控制器中有动作:
class HomeController extends Controller{
def index(implicit lang: Lang) = Action.async { implicit request => {
Future[Result] {
Ok(views.html.home.index(lang))
}
}
...
}
以下是 index.scala.html :
的摘录@()(implicit lang: Lang)
@main("Home page") {
<ul>
<li><a href="@routes.HomeController.index()"><span>Home</span></a>
...
</ul>
}
但是我在 @ routes.HomeController.index()编译错误,没有足够的方法参数
为什么会出错?如何在url创建中隐式传递变量?
答案 0 :(得分:1)
试试这个:
class HomeController extends Controller {
def index = Action.async { implicit request => {
Future[Result] {
Ok(views.html.home.index)
}
}
...
}
不要明确地将lang param传递给函数。播放Controller
包含从请求到lang的隐含转换,此lang将自动提供到您的视图中。