2013-02-03 3 views
0

내가 RequestFactory와 gwt를 사용하고 JSR303 유효성 검사를 사용하고 싶습니다만, 문제는 requestFactory를 add (object o)와 같이 호출 할 때 각 필드에 대해 유효성 검사를 2 번 호출 할 때입니다. exemple, 나는 사용자 정의 NOTNULL 주석 주석 필드에 개체에 대한 방법 저장 호출 할 때 :RequestFactory process double jsr303 validation

currentContext.add(toPersist).fire(new Receiver<Void>() { 
     @Override 
     public void onSuccess(Void response) { 
     } 
    }); 

public class NotEmptyValidator implements 
    ConstraintValidator<NotEmpty, Object>{ 

@Override 
public void initialize(NotEmpty constraintAnnotation) { 

} 

@Override 
public boolean isValid(Object value, ConstraintValidatorContext context) { 
    System.out.println("the value "+value); 
    return (value==null || value.toString().trim().equals("")) ? false:true; 
} 

}

을 검증 할 거 값을 보여 주석 NOTNULL 사용자 정의3210

i는 동일한 필드에 대해 CONSOL에 나타날

나는 새로운 엔티티를 추가하려고 : [INFO] 값 테스트 [INFO] 값 테스트

내가 수정하려고 기존 엔티티 : [INFO] 값 테스트 [INFO] 값이 null

내 질문에 왜 유효성 검사가 2 번 호출되며 왜 내가 값을 다시 시도 할 때 null입니다.

+0

주석 달린 수업은 어떻게 생겼습니까? JPA도 사용하고 있습니까? – Hardy

+0

예 JPA 및 스프링 데이터를 사용하고 있습니다. junit 테스트 (서버 쪽)에 아무런 문제가 없습니다. –

답변

0

처음으로 클라이언트 측에 있고 서버 측에서 두 번째로 가능합니까?

예인 경우 보안상의 이유로 올바른 내용입니다.

클라이언트 쪽 유효성 검사는 클라이언트가 잘못된 입력을하지 못하도록 보호하며 서버 쪽 유효성 검사는 시스템을 악의적 인 공격으로부터 보호합니다.

+0

죄송합니다. 내 게시물을 편집했습니다. 수정을 시도하면 값이 null이므로 값이 수정되지 않습니다. –

+0

Can 게시, 클라이언트 측에서 엔티티를 편집하는 방법은 무엇입니까? – Sam

+0

클라이언트에서 gwt 편집기를 사용하여 uiField를 valueProxy에 바인드했습니다. –