同时使用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验证的结果。