2012-08-16 2 views
0

에러 메시지를 표시하는 데 문제가있다. 저는 Spring MVC를 사용하고 UserForm과 같은 폼을 보내고 Hibernate validator를 사용하려고합니다.하지만 그 에러 코드는 볼 수 없습니다. Hibernate Validator가있는 Spring MVC는 messages.properties에서 에러를 보여주지 않는다.

내가 추가

package cz.solution.form; 

import java.util.Date;  
import org.hibernate.validator.constraints.NotEmpty;  

public class UserForm { 
    @NotEmpty 
    private String name; 
    @NotEmpty 
    private String text; 
    private Date date; 


    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getText() { 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 


    public Date getDate() { 
     return date; 
    } 


    public void setDate(Date date) { 
     this.date = date; 
    } 


} 

home.jsp에서 양식을 처리하기위한

package cz.solution.controllers; 

    import java.util.Date; 
import javax.validation.Valid; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.validation.BindingResult; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import cz.morosystems.form.UserForm; 
import cz.morosystems.tools.JobSheduler; 


@Controller 
public class UserController { 


    @RequestMapping(value="/", method=RequestMethod.GET) 
    public String showMyform(Model model) { 
     model.addAttribute("userform", new UserForm()); 
     return "home"; 
    } 

    @RequestMapping(value = "/addUser") 
    public String showFilledForm(@Valid @ModelAttribute("usermessage") UserForm userform, BindingResult result, 
         Model model) { 
     userform.setDate(new Date()); 
     model.addAttribute("userform", userform); 
     if(result.hasErrors()){   
      return "/home"; 
     }else{ 
      return "displayUser"; 
     } 

    } 
} 

정의 폼 위의 양식을 처리 할 내 컨트롤러 UserController이 있습니다 폼 home.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page session="false" %> 
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 

<html> 
<head> 
<link rel="stylesheet" type="text/css" 
    href="./resources/styles/style.css" media="screen" /> 
    <title>Home</title> 
</head> 
<body> 
<h1> 
    User Form 
</h1> 

<form:form action="addUser" commandName="userform" method="get"> 
    <table> 
     <tr> 
      <td>Name: </td> 
      <td><form:input path="name"/></td> 
      <td><form:errors path="name" cssClass="error"/></td> 
     </tr> 
     <tr> 
      <td>Text: </td> 
      <td><form:textarea path="text"/></td> 
      <td><form:errors path="text" cssClass="error"/></td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <input type="submit" value="Send"/> 
      </td> 
     </tr> 
    </table> 
</form:form> 
</body> 
</html> 

입니다 this to servlet-context.xml

,
<beans:bean class="org.springframework.context.support.ResourceBundleMessageSource" id="messageSource"> 
     <beans:property name="basename" value="messages" /> 
    </beans:bean> 

나는 폴더 SRC/메인/자원 입력의 하나가 비어있는 경우, 즉 다시 쇼 형태이다하지만 오류 메시지가없는

NotEmpty.userForm.name = Name is required! 
NotEmpty.userForm.text = Text is required! 

에 messages.properties 있습니다. 나는 UserForm에 추가하려고 시도했다.

@NotEmpty(message="Name is required") 
    private String name; 

그러나 성공하지 못했다. 모든 팁을 가져 주셔서 감사합니다.

답변

1

해결! 메소드 showFilledForm에서 @ModelAttribute 뒤에 @Valid를 부여하십시오

관련 문제