0
嘗試驗證在我的註冊表單中輸入的數據。找不到類型爲驗證器的驗證器:java.lang.String
錯誤消息: org.springframework.web.util.NestedServletException:請求處理失敗;嵌套異常是javax.validation.UnexpectedTypeException:HV000030:找不到類型爲java.lang.String的驗證程序。
模型類:
@Configuration
public class Student {
private int studentId;
@NotNull(message = "First name should not be empty")
@Size(min=03, max=20, message = "Minimum 3 to Maximum 20 characters are allowed")
@Pattern(regexp="/^[a-zA-Z]*$/")
private String firstName;
@NotNull(message = "Last name should not be empty")
@Size(min=03, max=20, message = "Minimum 3 to Maximum 20 characters are allowed")
@Pattern(regexp="/^[a-zA-Z]*$/")
private String lastName;
@NotNull(message = "Display name should not be empty")
@Pattern(regexp="^[A-Za-z0-9]*$", message = "Please enter a valid display name")
@Size(min=05, max=15, message="Minimum 3 to Maximum 15 characters are allowed")
private String displayName;
@NotNull(message = "Date of birth should not be empty")
@DateTimeFormat(pattern="yyyy/MM/dd/")
@Past (message="Only the past date is valid")
private String dateOfBirth;
@NotNull(message = "Email should not be empty")
@Email
private String email;
@NotNull(message = "Password should not be empty")
@Pattern.List({
@Pattern(regexp = "(?=.*[0-9])", message = "Password must contain one digit."),
@Pattern(regexp = "(?=.*[a-z])", message = "Password must contain one lowercase letter."),
@Pattern(regexp = "(?=.*[a-z])", message = "Password must contain one lowercase letter."),
@Pattern(regexp = "(?=\\S+$)", message = "Password must contain no whitespace.")
})
private String password;
@NotNull(message="Contact shouldnot be empty")
@Pattern(regexp = "[0-9]+", message="Contact should only contain numbers")
@Size(min=10, max=10)
private String contact;
@NotNull(message="Select atleast one skill from the list")
private List<String> studentSkills;
// Getter and Setter for studentId
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
// Getter and Setter for firstName
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
// Getter and Setter for lastName
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
// Getter and Setter for displayName
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
// Getter and Setter for DateOfBirth
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
// Getter and Setter for email
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
// Getter and Setter for password
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// Getter and Setter for contact
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
// Getter and Setter for studentSkills
public List<String> getStudentSkills() {
return studentSkills;
}
public void setStudentSkills(List<String> studentSkills) {
this.studentSkills = studentSkills;
}
}
控制器:
@RequestMapping(value="/registration", method=RequestMethod.GET)
public ModelAndView getRegForm() {
ModelAndView mv = new ModelAndView("registration","student",new Student());
return mv;
}
@RequestMapping(value="/submitregistrationform", method=RequestMethod.POST)
public ModelAndView submitRegForm(@Valid @ModelAttribute("student") Student student, BindingResult result) {
ModelAndView registrationView = new ModelAndView("registration");
if(result.hasErrors()) {
return registrationView;
} else {
st.insertOrUpdate(student);
ModelAndView mv = new ModelAndView("login");
return mv;
}
}
如何異常排序有什麼建議? 我嘗試了String的長度,看它是否有效。但事實並非如此。