2016-05-25 40 views
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的長度,看它是否有效。但事實並非如此。

回答

0

針對日期的驗證不正確。由於日期是字符串格式,並且註釋檢查DATE數據類型,它將引發異常。 將日期的數據類型從String更改爲DATE,並開始工作。

相關問題