同时使用JSR-303和传统Bean验证吗?
问题内容:
在Spring中是否可以同时使用JSR-303
bean验证
和传统验证(该类型的单个验证器类)?如果是这样,则需要什么配置来进行设置?
我已经尝试了参考书上的指示。
@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,则它使用custom
Validator
。如果删除它,则会使用JSR-303 bean验证。如何同时使用 两者 ?
问题答案:
我已经按照此处的说明进行了操作:
http://blog.jteam.nl/2009/08/04/bean-validation-integrating-jsr-303-with-
spring/
请参阅“同时享受两个世界”部分。很快,您可以从Spring验证器显式运行JSR303验证,并基于批注和自定义验证逻辑“联接” JSR303验证的结果。