自定义表单约束引发空指针异常



我在表单上定义自定义Constraint时遇到问题。这是我的表格:

val form = Form(
  mapping(
    "field" -> boolean
)(MyForm.apply)(MyForm.unapply)

如果我执行以下操作:

val form = Form(
  mapping(
    "field" -> boolean
)(MyForm.apply)(MyForm.unapply).verifying("my constraint", f => f.field == true)

然后它工作正常。但是,如果我尝试使用以下自定义Constraint,则会抛出空指针异常,我不知道为什么:

val form = Form(
  mapping(
    "field" -> boolean
)(MyForm.apply)(MyForm.unapply).verifying(myconstraint)
val myconstraint : Constraint[MyForm] = Constraint("myconstraint")({
   form => 
      if(form.field == true){
          Valid
      }else {
        Invalid(Seq(ValidationError("problem")))
      }
})

我尝试使用println进行调试,但控制台中没有打印任何内容。

尝试像这样将myconstraint定义移动到form定义上方

val myconstraint : Constraint[MyForm] = Constraint("myconstraint")({ ...
...
val form = Form( ...

由于可能存在前向引用问题,我们最终引用了一个未初始化的值。

最新更新