在url中,参数如下:
email=TTT&first-name=XXX&last-name=YYY
那么如何从网址获取参数值?
我知道我是否使用了这个功能
def widget(email: String) = Action{ request =>
我想显示所有参数。
我可以收到电子邮件。但是我不能将值命名为last-name
,因为破折号不能是变量的名称。那我怎么能得到像这样的姓氏值? (假设我无法更改链接,因为我从其他网址获取链接)
答案 0 :(得分:0)
如果您知道所有参数,则可以创建表单映射并使用fold方法获取所有值。它也适用于GET方法。在这种情况下,它看起来像这样
使用表单映射保存url params的案例类:
import play.api.data.Form
import play.api.data.Forms._
case class UrlForm(email: String, firstName: String, lastName: String)
object UrlForm {
val form = Form[UrlForm](
mapping(
"email" -> text,
"first-name" -> text,
"last-name" -> text
)(UrlForm.apply)(UrlForm.unapply)
)
}
此表单的控制器:
object UrlController {
def widget() = Action { implicit request =>
UrlForm.form.bindFromRequest.fold(
formWithErrors => // validation errors
urlForm => urlForm.email; urlForm.lastName //etc.
)
}
}
请注意,您可以将url params映射到您想要的任何类型。字符串只是一个例子。