如何在Play2-Scala 2.4控制器上设置自定义错误消息

时间:2015-10-27 10:24:35

标签: scala validation playframework-2.4

我想设置自定义错误消息,验证。

这是我的控制器操作方法Play2-scala 2.4应用程序

val myForm1 = Form (
  mapping(
    "hoge" -> Forms.text.verifying("req!", { !_.isEmpty() }),
    "piyo" -> Forms.number.verifying("1 to 10", n => { n >= 1 && n <= 10 })
)(MyFormRequest.MyParams1.apply)(MyFormRequest.MyParams1.unapply))
def validator1 = Action {
  Ok(views.html.myformrequest.validator1(myForm1))
}
def check1 = Action { implicit request =>
  val form = myForm1.bindFromRequest()
  if (!form.hasErrors) {
    val myParams1 = form.get
    Ok("check1 ok hoge: " + myParams1.hoge + " piyo: " + myParams1.piyo)
  } else {
    Ok("check1 ng " + form.error("piyo").get.message)
  }
}

这里

"piyo" -> Forms.number.verifying("1 to 10", n => { n >= 1 && n <= 10 })

我使用“验证”方法。我可以为“1&lt; = n&lt; = 10”条件设置自定义消息。行。

但是我无法为“数字”条件设置消息。在piyo参数中输入“abc”时,错误消息只是“error.number”。

“Forms.number”方法没有用于设置错误消息的参数。

如何为“Forms”成员设置自定义错误消息(文本,数字,布尔值,日期,电子邮件....)

1 个答案:

答案 0 :(得分:0)

据我所知,你不能在表单字段上有两个verifying表达式。但是,您可以再添加一个条件来检查n是否为数字。

所以:

n => { n >= 1 && n <= 10 && n.isInstanceOf[Int]}

就自定义错误消息而言,您可以在消息conf文件中定义自定义消息。 您可以根据Play! website调整示例。