2012-05-27 104 views
1

我試圖用基於Spring MVC的javax創建簡單驗證。我已啓用註釋驅動。我想顯示錯誤詮釋的形式,但我得到500頁的錯誤:Spring MVC 3和驗證錯誤

500錯誤頁面

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors 
Field error in object 'profile' on field 'email': rejected value [[email protected]]; codes [Pattern.profile.email,Pattern.email,Pattern.java.lang.String,Pattern]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [profile.email,email]; arguments []; default message [email],[Ljavax.validation.constraints.Pattern$Flag;@718df055,^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$]; default message [Nieprawidłowy e-mail] 
Field error in object 'profile' on field 'login': rejected value [xx]; codes [Size.profile.login,Size.login,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [profile.login,login]; arguments []; default message [login],20,4]; default message [Login musi min. długość 4 znaków, max. 20 znaków] 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894) 
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

控制器

@RequestMapping(value="/register", method=RequestMethod.POST) 
    public String register(
      @Valid Profile profile, 
      @RequestParam("recaptcha_challenge_field") String challenge, 
      @RequestParam("recaptcha_response_field") String response, 
      BindingResult result, Model model, HttpServletRequest request) { 

     ReCaptchaResponse cResponse = captcha.checkAnswer(request.getRemoteAddr(), challenge, response); 
     if(result.hasErrors() || !cResponse.isValid()) { 
      String message = cResponse.getErrorMessage(); 
      String html = captcha.createRecaptchaHtml(message, null); 
      model.addAttribute("profile", profile); 
      model.addAttribute(CAPTCHA_HTML, html); 
      return "login/register"; 
     } 
     return "ok"; 
    } 

模型的一部分(僅此字段驗證)

@NotBlank 
    @Size(min=4, max=20) 
    @Pattern(regexp="^([\\w]+)$") 
    private String login; 

    @NotBlank 
    @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; 

如何解決這個問題?

回答

1

也許嘗試做maven clean並安裝到您的本地回購?

+0

是的,愚蠢的錯誤。這是解決我的問題。 – Raknel