Я запускаю webapp в Spring Web MVC 3.0, и у меня есть несколько методов контроллера, чьи подписи примерно следующие:
@RequestMapping(value = "/{level1}/{level2}/foo", method = RequestMethod.POST)
public ModelAndView createFoo(@PathVariable long level1,
@PathVariable long level2,
@RequestParam("foo_name") String fooname,
@RequestParam(value = "description", required = false) String description);
Я хотел бы добавить некоторую проверку - например, description
должен быть ограничен определенной длиной или fooname
должен содержать только определенные символы. Если эта проверка не удалась, я хочу вернуть сообщение пользователю, а не просто отбросить какое-то неконтролируемое исключение (что произойдет в любом случае, если я пропущу данные до уровня DAO). Я знаю JSR303, но не работал с ним и не совсем понимаю, как применить его в контексте Spring.
Из того, что я понимаю, другим вариантом было бы привязать @RequestBody
ко всему объекту домена и добавить туда ограничения проверки, но в настоящее время мой код настроен для принятия отдельных параметров, как показано выше.
Каков самый простой способ применения валидации для ввода параметров с использованием этого подхода?