Scala 使用破折号播放url中的框架获取参数
在url中,参数如下所示: email=TTT&first name=XXX&last name=YYY 那么如何从url中获取参数值呢 我知道我是否使用了这个函数Scala 使用破折号播放url中的框架获取参数,scala,url,playframework,playframework-2.0,Scala,Url,Playframework,Playframework 2.0,在url中,参数如下所示: email=TTT&first name=XXX&last name=YYY 那么如何从url中获取参数值呢 我知道我是否使用了这个函数 def widget(email: String) = Action{ request => 我想显示所有的参数 我可以收到电子邮件。但我无法将该值命名为姓氏,因为破折号不能位于变量名称中。那么我怎样才能得到像这样的lastname的值呢?假设我无法更改链接,因为我从其他url获取了链接,如果您知道所有参数,则可以创建表单映
def widget(email: String) = Action{ request =>
我想显示所有的参数
我可以收到电子邮件。但我无法将该值命名为姓氏,因为破折号不能位于变量名称中。那么我怎样才能得到像这样的lastname的值呢?假设我无法更改链接,因为我从其他url获取了链接,如果您知道所有参数,则可以创建表单映射并使用fold方法获取所有值。它还与GET方法一起工作。在这种情况下,它看起来是这样的 用于保存具有表单映射的url参数的案例类:
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参数映射到所需的任何类型。字符串只是一个例子