1

我希望 Play 框架中的表单验证根据验证的附带结果生成可变错误消息。我怎样才能干净地做到这一点?

具体示例——假设我有一个这样定义的表单:

  val f = Form(
    "xml" -> text
      .verifying(
        "xml is incorrect",
        xml => validationError(xml) == None
      )
  )

  def validationError(xml: String): Option[String]

我该怎么做才能将validationError返回的字符串显示为验证错误消息,而不是固定字符串“xml不正确”?

4

1 回答 1

1

您可以创建Constraint将处理它的实例。例如:

val xmlConstraint = Constraint[String](Some("xml.constraint"), Nil)( xml =>
  validationError(xml).map(msg => Invalid(ValidationError(msg))).getOrElse(Valid)
)

val f = Form("xml" -> text.verifying(xmlConstraint))

此外,对象还有另一种apply方法,Constraint没有指定约束的名称。

于 2012-10-14T17:46:12.753 回答