让我们直接上我的课,Person.java
public class Person {
@Size(min=4, max=10)
private String name;
@Range(min=0, max=80)
private Integer age;
@NotEmpty
private String address;
@Pattern(regexp="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
private String email;
@Past
private Date birth;
private Pet pet;
...
}和Pet.java
public class Pet {
@NotEmpty
public String name;
@NotEmpty
public Integer age;
...
}这是我的表格
<form:form action="enter" method="post" commandName="personForm">
name: <form:input path="name"/> <form:errors path="name" /> <br/>
age: <form:input path="age"/> <form:errors path="age" /> <br/>
address:<form:input path="address"/> <form:errors path="address" /> <br/>
email: <form:input path="email"/> <form:errors path="email" /> <br/>
birth: <form:input path="birth"/> <form:errors path="birth" /> <br/>
petName:<form:input path="pet.name"/> <form:errors path="pet.name" /> <br/>
petAge: <form:input path="pet.age"/> <form:errors path="pet.age" /> <br/>
<input type="submit" value="Register"/> <br/>
</form:form>代码运行良好,并在表单上显示消息:error。当输入无效值时阻塞,除非涉及到petName和petAge。
实际上,代码根本不验证petName和petAge。我在使用hibernate验证器。谁能告诉我怎么解决这个问题吗?
发布于 2016-03-16 10:44:25
尝试在javax.validation.Valid之上添加pet注释。
public class Person {
@Size(min=4, max=10)
private String name;
@Range(min=0, max=80)
private Integer age;
@NotEmpty
private String address;
@Pattern(regexp="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
private String email;
@Past
private Date birth;
@Valid // This line
private Pet pet;
}https://stackoverflow.com/questions/36032959
复制相似问题