2011-01-12 3 views
3

입력 내용의 유효성을 검사하고 싶지만 작동하지 않을 수 있습니다. 아무 것도 페이지에 표시되지 않습니다. 내 프로젝트가 자바 5에 있으므로 JSR303 (@Valid)이 없습니다. 내 유일한 해결책은, 내가 잘못 본 것이 아니라면 BindingResult를 사용하는 것입니다.스프링 3 MVC : 형식 문제 : 오류 및 바인딩 결과

내 컨트롤러 :

@Controller 
public class MyController { 

    @RequestMapping(method = RequestMethod.POST, value = "myPage.html") 
    public void myHandler(MyForm myForm, BindingResult result, Model model) { 
     result.reject("field1", "error message 1"); 
    } 
} 

내 JSP가 :

<form:form commandName="myForm" method="post"> 
    <label>Field 1 : </label> 
    <form:input path="field1" /> 
    <form:errors path="field1" /> 

    <input type="submit" value="Post" /> 
</form:form> 

내가 무엇을 놓치고?

감사합니다.

답변

12

BindingResult.reject()은 전체 양식과 오류 메시지를 연결하기 때문에 path없이 <form:errors/>으로 표시 할 수 있습니다. 특정 양식 필드에 오류를 연결하려면 BindingResult.rejectValue() 사용

result.rejectValue("field1", "messageCode", "Default error message"); 

는 또한 자바 (5)와 JSR-303에 아무런 문제가없는 당신은뿐만 아니라 자바 6과, 클래스 패스에 JSR-303 공급자와 API 라이브러리를 필요

+0

rejectValue입니다. 감사합니다, 당신은 오늘을 구했습니다 :)) –