0
我有一个表employee
,它有department
和address
作为它的属性。我想使用JSR 300验证address
类的属性。但是我有验证地址和部门类的属性的问题。到目前为止,只有Employee
类的属性正在验证中。我错过了什么吗?Spring mvc:作为另一个类验证属性的对象JSR 300
public class Employee {
private Integer id;
@NotEmpty(message = "First Name must not be blank.")
@Size(min = 1, max = 50)
private String firstName;
@NotEmpty(message = "Last Name must not be blank.")
@Size(min = 1, max = 50)
private String lastName;
@Digits(message = "Salary field must not be blank.", integer=32767, fraction = 2)
@NumberFormat(style = Style.NUMBER)
@NotNull(message = "Salary field must not be blank.")
private Double salary;
@Digits(message = "Select department", integer=100, fraction = 0)
@NumberFormat(style = Style.NUMBER)
@NotNull(message = "Select department")
private Integer dept_id;
@NotEmpty(message = "Select gender")
private String gender;
private boolean employeeStatus;
private Address address;
private Department department;
}
public class Address {
private Integer id;
@NotEmpty(message = "Country must not be blank.")
@Size(min = 1, max = 50)
private String country;
@NotEmpty(message = "City must not be blank.")
@Size(min = 1, max = 50)
private String city;
@NotEmpty(message = "Street must not be blank.")
@Size(min = 1, max = 50)
private String street;
private Integer emp_id;
}
public class Department {
private String name;
private Integer id;
}
JSP
<form:form commandName="employee" action="addEmployee.htm"
name="employeeForm">
<form:errors path="*" cssClass="errorblock" element="div" />
<fieldset>
<form:label path="firstName">First Name</form:label>
<form:input path="firstName" />
<form:errors path="firstName" cssClass="error" />
<br>
<form:label path="lastName">Last Name</form:label>
<form:input path="lastName" />
<form:errors path="lastName" cssClass="error" />
<br>
<form:label path="address.country">Country</form:label>
<form:input path="address.country" />
<form:errors path="address.country" cssClass="error" />
<br>
<form:label path="address.city">City</form:label>
<form:input path="address.city" />
<form:errors path="address.city" cssClass="error" />
<br>
<form:label path="address.street">Street</form:label>
<form:input path="address.street" />
<form:errors path="address.street" cssClass="error" />
<br>
<form:label path="salary">Salary</form:label>
<form:input path="salary" />
<form:errors path="salary" cssClass="error" />
<br>
<form:label path="gender">Gender</form:label>
<form:radiobutton path="gender" value="Male" />
Male
<form:radiobutton path="gender" value="Female" />
Female
<form:errors path="gender" cssClass="error" />
<form:label path="dept_id">Department</form:label>
<form:select path="dept_id">
<form:option value="" label="Please Select"></form:option>
<form:options items="${departmentList}" itemValue="id"
itemLabel="name" />
</form:select>
<form:errors path="dept_id" cssClass="error" />
<label></label><input type="submit" value="Add Employee"><br>
</fieldset>
</form:form>
而且,当我尝试在工资领域的随机字符串我得到一个异常。
Failed to convert property value of type java.lang.String to required type java.lang.Double for property salary; nested exception is java.lang.NumberFormatException:
如何摆脱这个异常?
如何解决在部门领域的例外,我得到: '未能Java类型的属性值转换.lang.String为所需的类型org.abc.model.entities.Department for pro perty部门;嵌套异常是java.lang.IllegalStateException:不能转换类型[java.lang.String] ..的值 – Tayba