【问题标题】:validating optional fields with play framework使用播放框架验证可选字段
【发布时间】:2015-03-28 13:11:20
【问题描述】:

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

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 个字符) & 如果没有标题,则什么也不做

我想对mapping() 中声明的字段进行验证,而不是在声明所有字段然后一起验证之后。如果您可以提供一些链接,那也可以。谢谢

【问题讨论】:

    标签: scala validation playframework-2.0


    【解决方案1】:

    verifying 方法中执行验证时,您需要做的就是编写一个 if... else... 来满足您的需求(无论是 optional(text) 还是 text)。

    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))
    

    【讨论】:

    • value =&gt; value.forall(_ &lt;= 50) 会更优雅
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2013-10-16
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多