non*_*com 10 validation scala playframework-2.0
练习这里写的内容:ScalaForms,我创建了以下形式:
val personCreationForm = Form(
tuple (
"name" -> nonEmptyText,
"age" -> number verifying (min(0), max(100)) /*ERROR*/
) verifying ("Wrong entry", result => result match {
case (name, age) => true
})
)
Run Code Online (Sandbox Code Playgroud)
但是,关于verifying
状态的错误value verifying is not a member of (java.lang.String, play.api.data.Mapping[Int])
.
如在引用的示例中那样使用mapping
而不是tuple
没有区别.这有什么不对?
根据Scala 运算符优先级规则,以字母开头的方法的优先级低于其他字母,因此当您编写时:
"age" -> number verifying (min(0), max(100))
Run Code Online (Sandbox Code Playgroud)
编译器构建以下表达式:
("age" -> number) verifying (min(0), max(100))
Run Code Online (Sandbox Code Playgroud)
这不是你想要的!您可以按如下方式重写它:
"age" -> number.verifying(min(0), max(100))
"age" -> (number verifying (min(0), max(100)))
Run Code Online (Sandbox Code Playgroud)
而目前的Play文档是错误的.谢谢你抓住它!
归档时间: |
|
查看次数: |
2033 次 |
最近记录: |