Play框架/ Scala表单中特定于字段的错误消息

kgx*_*kgx 7 scala playframework playframework-2.0

我想在Scala表单助手中使用"nonEmptyText"constaint时自定义默认错误消息"此字段是必需的".

这是我想要自定义的示例:

  val form = Form(
    tuple("email" -> nonEmptyText, "password" -> nonEmptyText)
      verifying ("Invalid email or password.", result => result match {
        case (email, password) => {
          User.authenticate(email, password).isDefined
        }
      }))
Run Code Online (Sandbox Code Playgroud)

最好在我的conf/messages文件中,我可以提供特定于字段的错误:

error.email.required=Enter your login email address
error.password.required=You must provide a password
Run Code Online (Sandbox Code Playgroud)

但在最糟糕的情况下,我会对使用字段名称的通配符信息感到满意:

error.required=%s is required  
#would evaluate to "password is required", which I would then want to capitalize
Run Code Online (Sandbox Code Playgroud)

我在一些Play 1.x文档中看到了这个%s表达式,但它似乎不再起作用了.

预先感谢您的帮助!

Fyn*_*ynn 8

尝试删除a的用法nonEmptyText并使用text带有自定义验证的简单字段:

tuple(
  "email" -> text.verifying("Enter your login email address", _.isDefined),
  "password" -> text.verifying("You must provide a password", _.isDefined)
)
Run Code Online (Sandbox Code Playgroud)

然后,您可以进一步移动并交换子句String内部verifying以调用play.api.i18n.Messages对象:

tuple(
  "email" -> text.verifying(Messages("error.email.required"), _.isDefined),
  "password" -> text.verifying(Messages("error.password.required"), _.isDefined)
)
Run Code Online (Sandbox Code Playgroud)

请注意,这是未经测试的代码,但它应该指出方向.

祝好运