我在Spring 3中有一个验证器
Class X implements Validator{
public void validate(Object object, Errors errors) {
//Implementation 1
}
}
Class Y implements Validator{
public void validate(Object object, Errors errors) {
//Implementation 2
}
}
现在我想通过使用实现1在一些情况(可能是Request Mapping1)的基础上验证我的模型,在其他情况下(RequestMapping 2)我想使用实现2.
我如何在Spring 3中实现这一目标
这是活页夹
@InitBinder
protected void initBinder(WebDataBinder binder) {
if (binder.getTarget() instanceof X) {
binder.setValidator(new X());
}
}
@RequestMapping("/Implementation1.html)
public String one(@Valid X x){
return "pg1";//I want 1st implementation of validator
}
@RequestMapping("/Implementation2.html)
public String one(@Valid X x){
return "pg2"; //I want 2nd implementation of validator
}
答案 0 :(得分:0)
我已经完成了spring mvc的配置,它使用@Valid注释来验证bean。你可以在那里寻求帮助。 https://github.com/andonescu/springmvc-freemarker/tree/spring-3.2v
**如果您使用<mvc:annotation-driven/>
配置Spring MVC,那么它将自动配置JSR 303验证器
首先,在我看来,您要验证的对象 不需要实现Validator接口。那些课应该 仅在最简单的情况下,实施 Serializable 。
然后,您可以注释要验证的类中的字段 - 带约束 - jsr 303 example here
第三,当你在控制器中使用类时,在类作为参数添加到方法之后,应该是BindingResult bindingResult
,你可以使用该绑定结果来查明该对象是否有错误或不,example here
@RequestMapping(“/ Implementation1.html) public String one(@Valid X x,BindingResult bindingResult){ return“pg1”; //我想要第一次实现验证器 }