是否可以同时使用 JSR-303 bean validation和 traditional validation (该类型的单个验证器类)在 Spring 中?如果是这样,设置它需要什么配置?
我已经尝试了 reference 上的说明.
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new DualEntryValidator());
}
@RequestMapping(value="/dualEntry.htm", method = RequestMethod.POST)
public ModelAndView handlePost(@Valid DualEntryForm form, BindingResult result) {
ModelAndView modelAndView = new ModelAndView("dualEntry", getCommonModel());
if (!result.hasErrors()){
//do logic
return modelAndView;
}else {
modelAndView.addObject("dualEntryForm", form);
return modelAndView;
}
}
我可以使用我的自定义 Validator
或 JSR-303 验证,但不能同时使用两者。如果我在示例中存在 initBinder,它将使用自定义 Validator
。如果我删除它,则使用 JSR-303 bean 验证。我如何同时使用?
最佳答案
我已按照此处的说明进行操作:
http://blog.jteam.nl/2009/08/04/bean-validation-integrating-jsr-303-with-spring/
请参阅“享受两个世界”部分。很快,您从 Spring 验证器显式运行 JSR303 验证,基于注释和您的自定义验证逻辑“加入”JSR303 验证的结果。
关于spring - 同时使用 JSR-303 和传统 Bean 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835122/