我是 Scala/Play 框架的新手。
目前,我正在尝试从我的 html 页面调用 Scala 函数:test.scala.html 并将散列参数传递给 Scala 函数。
我在路由中添加了以下几行:
GET /hello controllers.Application.test
POST /hello controllers.Application.hello
在我的 test.scala.html 中我有:
@params = { window.location.hash }
@helper.form(action = routes.Application.hello) {
}
我的 hello 函数定义为:
def hello() = Action {
Ok("Hello !")
}
我完全被路由和@的概念弄糊涂了,所以我不太确定哪一部分做对了,哪一部分做错了。请指出我的错误。
提前致谢。
最佳答案
如果函数正在返回一个 Action ,而不是要在 View (HTML) 中格式化显示的内容,您可能希望将请求路由到这个 Action ,从链接点击或表单提交,到路由中配置的 url(又名 /hello
).
要添加参数,您需要将其添加为 url 查询字符串(例如对于链接 → /hello?p=1
),或者为表单添加输入/字段(例如 <input type="text" name="p" value="1" />
)。
您可以使用反向路由获取 URL 来调用配置的操作。例如,对于 POST 到 hello
的表单: <form action="@routes.MyController.hello()" method="POST">...
。在这种情况下,您需要查看表单映射,以从请求中提取参数。
关于scala - 如何从 Play html 模板调用 Scala 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320033/