@Valid没有触发 – Spring MVC 3.2

出于某种原因,它不起作用。 我搜索并尝试了在网上找到的所有解决方案。 没有骰子。 看起来我错过了什么。

我的光束:

@Entity @Table(name="employees") public class Person { private Integer person_id; private String name; private String name2; private String email; private double phone; private String desc; @Id @Max(value=500) @Column (name="id") public Integer getPerson_id() { return person_id; } public void setPerson_id(Integer person_id) { this.person_id = person_id; } @NotNull @NotEmpty @Column (name="fn") public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name="ln") public String getName2() { return name2; } public void setName2(String name2) { this.name2 = name2; } @Email @Column (name="em", unique = true) public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Column(name="phone") public double getPhone() { return phone; } public void setPhone(double phone) { this.phone = phone; } @Column (name="de") public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String toString() { return getPerson_id() + " - " + getName() + " - " + getName2() + " - " + getEmail(); } } 

处理POST的控制器方法:

  @RequestMapping(value="/register", method = RequestMethod.POST, headers="Accept=*/*") public String registerUer( @javax.validation.Valid Person registerForm, BindingResult br){ System.out.println( "Erros?" + br.hasErrors()); if ( br.hasErrors() ) { System.out.println(br.getAllErrors()); } System.out.println(registerForm); return "thankyou"; } 

针对home.jsp

  
Name1:
Name2:
Email:
Desc:
Phone:

应用程序上下文xml文件:

        /WEB-INF/views/   .jsp          

我总是得到hasErrors()返回false我在classspath中有hibernatevalidation器(GA jar)文件。 我看到这个装:

  INFO [Version] Hibernate Validator 4.2.0.Final 

我错过了什么吗?

如果我删除JPA注释(因为我想避免进一步配置db)并使用您的表单和控制器代码,它按预期工作。

肯定有一些缺失的部分,你可以尝试通过validation注释制作一个简单的pojo并查看。