自定义表单Constraint抛出空指针异常

Custom defined form Constraint throws a null pointer exception

我在表单上定义自定义 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( ...

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