使用play框架验证可选字段

时间:2015-01-29 10:36:36

标签: scala validation playframework-2.0

我一直在寻找过去的半小时,但没有找到任何解决方案或页面实际描述使用播放框架验证可选字段。 这是我的表格:

var myForm = Form(mapping(
    "id" -> optional(longNumber),
    "field" -> text
      .verifying("field is required", value=> value.length > 0),
    "heading" -> optional(text)
      .verifying("heading should be less than 50 characters", value=> value.length < 51) // Need something like this validation
  )(FormDetails.apply)(FormDetails.unapply))

当其optional(text)字段时.verifying要求Option[...]

我想要执行的验证是:如果标题存在而不是检查其长度(最多50个字符)&amp; 如果没有标题则不做任何事

我希望在声明所有字段然后一起验证后,使用mapping()中声明的字段进行验证。如果您可以提供一些链接,那也可以。感谢

1 个答案:

答案 0 :(得分:1)

您需要做的就是在optional(text)方法中执行验证时,编写一个符合您需求的if ... else ...(textverifying

var myForm = Form(mapping(
    "id" -> optional(longNumber),
    "field" -> text
      .verifying("field is required", value=> value.length > 0),
    "heading" -> optional(text)
      .verifying("heading should be less than 50 characters", value=> if (value.isDefined) value.get.length <= 50 else true)
  )(FormDetails.apply)(FormDetails.unapply))