2012-03-07 4 views
1

봄에 양식에 대한 유효성 검사를 설정하는 데 문제가 있습니다.봄 mvc 응용 프로그램에서 jsr-303 유효성 검사가 유효하지 않습니다

이 같은 모습을 확인하고자하는 빈 (bean) :

public class RegistrationForm extends ProjectXUser { 
@NotEmpty 
private String password2; 

@NotBlank 
@AssertTrue 
private Boolean agreedToConditions; 
... 

ProjectXUser도 주석이 몇 가지 더 속성이 BaseUser에서 상속됩니다.

@Controller 
public class RegistrationController { 
private static final String REGISTRATION_JSP = "registration"; 

@ModelAttribute("registrationForm") 
public RegistrationForm getRegistrationForm() { 
    return new RegistrationForm(); 
} 

@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.GET) 
public String year() { 
    return "registration"; 
} 

@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.POST) 
public ModelAndView register(@Valid RegistrationForm registrationForm, BindingResult result) { 
    if (result.hasErrors()) { 
    return new ModelAndView(REGISTRATION_JSP); 
    } else { 
    return new ModelAndView("redirect:/registratie/success"); 
    } 
} 
} 

내 스프링 구성 파일이 포함되어 있습니다 :

내 컨트롤러는 다음과 같다 나는 봄 문서에 읽은

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> 
<mvc:annotation-driven /> 

JSR-303의 유효성 검사기 클래스에있는 경우 그 경로 스프링이 자동으로 감지하여 사용합니다. 그래서 pom에 hibernate-validator를 추가했습니다.

그러나 컨트롤러를 디버깅 할 때 registrationForm에 입력 한 값이 들어 있음을 볼 수 있습니다.하지만 결과에는 항상 0 오류가 있습니다. 양식 필드에 잘못된 입력을 명시 적으로 입력하더라도.

+0

를 사용하여 @Controller가 작동하지만 스캔 한 패키지의 RegistrationForm 클래스라고 생각하십니까? –

+0

를 사용하고 있습니다. 그것은 org.x.y를 스캐닝하고 나의 RegistrationForm은 org.x.y.web.forms에 있습니다. 그래서 그것을 받아 들여야합니다. –

+0

'validator.validate (registrationForm)'을 사용하여 수동으로 유효성을 검사하면 작동합니까? – tbruyelle

답변

0

코드의이 비트가 발사 및

if (result.hasErrors()) { 
    return new ModelAndView(REGISTRATION_JSP); 
} 

이 그런 다음 JSR-303 유효성 검사가 포착되고 등록 페이지로 다시 리디렉션됩니다. 당신은 cssClass="error" 당신이 가진 오류를 표시 할 CSS입니다이

<form:errors path="password2" cssClass="error" /> 

처럼 JSP 페이지에서 오류를 표시해야합니다. 자동으로 <div>에 삽입됩니다.

관련 문제