2011-10-17 2 views
3

Hibernate 구현과 통합 된 JSR-303 유효성 검사와 함께 Spring을 사용하여 양식의 유효성을 검사하려고합니다. 확인하고 싶은 "confirm email"(emailConf) 필드가 email 필드와 같습니다.Spring MVC 3 유효성 검사 주석 - 전자 메일 확인

public class ContactInfoForm { 

    @NotEmpty 
    private String name; 

    @NotEmpty 
    @Email 
    private String email; 

    @Expression(value = "emailConf= email", applyIf = "emailConf is not blank") 
    private String emailConf; 

    ... 
} 

그러나이 emailConf 유효성 검사가 작동하지 않습니다 (필드가 일치하지 않을 때 즉, 오류가 발생하지) :이처럼 그 일을 다른 사람의 게시물을 보았다. 유사한 주석을 보여준 몇 가지 자습서를 보았지만 더 이상이 문서를 찾을 수 없거나 어떻게 작동하는지 설명서가 없습니다. 누구든지 주석을 통해 "이메일/비밀번호 확인"필드의 유효성을 검사하는 방법을 알고 있습니까? 현재 Validator을 구현하고 validate 메소드의 확인 필드의 유효성을 검사하는 대안을 사용하고 있습니다.

+0

이'@ Expression' 어노테이션은 어디에서 왔습니까? – Ralph

+0

나는 그것을 깨닫지 못했다. 그러나 @Expression 어노테이션은 "class-modules"에서 가져온 것으로, 심지어 클래스 패스에 있다는 것을 깨닫지도 못했다. 나는 원래 classpath에이 튜토리얼을 따라 갔지만 JSR-303과 Hibernate Validator를 사용하여 끝내었다. Spring-modules에 익숙하지는 않지만 SpringSource의 포럼 페이지에는 2010 년 8 월부터 "Spring Extensions에 찬성하여 폐기 된 Spring Modules 포럼"이라는 발표가 있습니다. 더 이상 지원되지 않으면이 라이브러리를 사용하지 않는 것이 좋습니다. –

답변

1

당신은이 question and its answers을 봐야 할 것입니다. 여러 가지 방법으로 그러한 유효성 검사를 수행하는 방법을 설명합니다 (암호 및 암호 확인에 관한 내용이지만 문제는 동일합니다).

+1

FieldMatch 유효성 검사기를 기반으로 구현을 사용하고 있습니다. – digitaljoel

+0

나는이 페이지를 살펴 봤는데 거기에 정말 좋은 자원이있다. 한 가지 알아낼 수없는 것은 클래스 수준 제약 조건의 결과를 내 양식의 특정 필드에 연결하는 방법입니다. 전자 메일이 일치하지 않으면 emailspf 필드의 오류로 인해 jsp에서 오류를 출력하고 싶습니다. 현재 스프링 양식을 사용하여 오류를 출력하고 있습니다. 오류 태그 :'

' –

+0

자원을 보내 주셔서 감사합니다. 커스텀 FieldMatch 애노테이션은 좋은 방법입니다. scriptassert를 필요에 따라 사용할 수있게되었지만 오류가 발생하여 해당 양식 필드에 바인딩되는 것이 다소 지저분했습니다. 결국에는 주석을 버리고 사용자 정의 유효성 검사기 클래스를 사용했습니다. 시간이 더 있다면 다른 솔루션을 실험 해 보았습니다. 감사! –

1

같은 클래스의 2 필드를 비교하려면 "Class-level constraint" (JSR-303에 설명 된대로)이 필요합니다. 나는 당신의 @Expression이 그런 식으로 작동하지 않을 것이라고 생각합니다.

관련 문제