Привязка пустых значений к числовым полям в Play Framework 2 (Java)

У меня есть формы, в которых я хочу оставить некоторые числовые поля пустыми, но я получаю ошибки "Недопустимое значение" от Form.bindFromRequest(), Это кажется общим требованием, но я не могу найти документацию по этому вопросу после нескольких часов поиска. Я все еще надеюсь, что пропустил что-то очевидное, хотя!

Я немного покопался и обнаружил, что Play использует Spring DataBinder класс, чтобы сделать фактическую привязку. Этот класс действительно сложный и позволил бы мне устанавливать пользовательские связыватели для моих полей, и если бы я использовал Spring, я мог бы просто добавить @InitBinder метод моего контроллера, чтобы настроить связыватель именно так, как я хочу, используя CustomNumberEditor, Тем не менее, кажется, что Play Framework Form Объект не разрешает доступ к DataBinder, кроме установки разрешенных полей. Таким образом, связыватель пытается преобразовать пустую строку в длинную, что дает NumberFormatException:

Failed to convert property value of type 'java.lang.String' to required type 'long' 
for property 'unitPriceExVAT'; 
nested exception is java.lang.NumberFormatException: For input string: ""

Итак, есть ли какой-то другой способ получить связующее, чтобы пустые числовые поля?

1 ответ

Решение

Объявите ваши поля как Long вместо long примитивный тип и пустые значения будут рассматриваться как null,

Другие вопросы по тегам