Spring Web MVC - проверка индивидуальных параметров запроса

Я запускаю веб-приложение в 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);

Я хотел бы добавить некоторую проверку - например, описание должно быть ограничено определенной длиной или fooname должно содержать только определенные символы. Если эта проверка не удалась, я хотите вернуть сообщение пользователю, а не просто выбросить какое-то непроверенное исключение (что произойдет в любом случае, если я позволю данным просочиться на уровень DAO). Я знаю о JSR303, но не работал с ним и не совсем понять, как применить его в контексте Spring.

Насколько я понимаю, другим вариантом было бы привязать @RequestBody [11940] 82] для всего объекта домена и добавить туда ограничения проверки, но в настоящее время мой код настроен для приема отдельных параметров, как показано выше.

Каков наиболее простой способ применить проверку к входным параметрам с использованием этого подхода?

48
задан Dan 1 June 2011 в 15:30
поделиться