Пользовательская форма Constraint генерирует исключение нулевого указателя - PullRequest
2 голосов
/ 30 мая 2019

У меня проблема с определением пользовательского 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 для отладки, но ничегопечатается в консоли.

1 Ответ

2 голосов
/ 30 мая 2019

Попробуйте переместить определение myconstraint выше определения form следующим образом:

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

из-за возможной проблемы с прямой ссылкой, когда мы в конечном итоге ссылаемся на неинициализированное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...