У меня возникла проблема с проверкой параметров, передаваемых методу контроллера.
Следуя совету из учебника, я использую один и тот же метод контроллера для «сохранения» и «создания нового» объекта. Смотрите пример в
http://www.playframework.org/documentation/1.2.4/guide9
Итак, мой метод контроллера выглядит так:
public static void saveEntity(long l, Long itemId,
@Required(message="error.shouldspecifyname") String name,
@Required(message="error.shouldspecifycategory") String category)
Если 'itemId' не является частью данных, отправляемых через HTTP-запрос - предполагается, что он установлен на 'null'.
К сожалению, похоже, что "Play" - это автоматически , добавив ошибку проверки для параметра "пропущено".
При просмотре списка ошибок валидации каждый раз, когда itemId равен нулю - я получаю сообщение об ошибке Неверное значение для поля itemId
Это документированное поведение? Любой способ переопределить его или «избавиться» от ошибки.
Я обрабатываю ошибки просто используя перенаправление, например:
if(validation.hasErrors() )
{
validation.keep();
showSomePage();
}
Таким образом, ошибки отображаются «вне контекста», которые они генерируют. Вот почему меня беспокоит «автоматическая» ошибка.
Спасибо за любую подсказку.