我和Spring Web MVC 3.0上运行web应用程序,我有许多的控制器方法,其特征大致如下:Spring Web MVC框架 - 验证个人请求参数
@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
绑定到整个域对象并在其中添加验证约束,但目前我的代码已设置为接受上述单个参数。
什么是使用这种方法应用验证输入参数最直接的方法?
我会尝试使用javax.validation注释那里,看看它是否工作@RequestParam
}
手柄ConstraintViolationException。我不知道它是否:) – Bozho 2011-06-01 15:49:44
你能详细说明吗?我会像使用'@ RequestParam'一样使用参数声明本身的注释吗? – Dan 2011-06-01 16:30:40
另外,这不是Java EE应用程序,也不是在Java EE容器中运行,它只是运行在Servlet容器中的普通动态Web应用程序。 – Dan 2011-06-01 16:46:46