我想在Play框架中进行表单验证,以根据验证的附属结果生成可变错误消息。我怎么能干净利落地做到这一点?
具体示例 - 假设我有一个定义的表单:
val f = Form(
"xml" -> text
.verifying(
"xml is incorrect",
xml => validationError(xml) == None
)
)
def validationError(xml: String): Option[String]
如何将validationError返回的字符串显示为验证错误消息,而不是固定字符串“xml不正确”,我该怎么办?
答案 0 :(得分: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))
此外,Constraint
对象上还有另一个apply
方法,但未指定约束名称。