2012-11-24 5 views
1

GWT 편집기에서 가능한 한 ConstraintViolationEditorError을 표시하는 데 어려움을 겪고 있습니다. 오류 또는 유효성 검증 위반을 표시하는 것은 문제가되지 않습니다.GWT 편집기 : ConstraintViolations 및 EditorErrors 표시

다음 예는 Entity

Entity.java 일부 number 필드 사용

.... 
@NotNull 
private Integer number; 

public Integer getNumber() { 
    return number; 
} 

public void setNumber(Integer number) { 
    this.number = number; 
} 
... 

EntityEditor.ui.xml을

... 
<editor:ValueBoxEditorDecorator ui:field="number"> 
    <editor:valuebox> 
     <g:IntegerBox /> 
    </editor:valuebox> 
</editor:ValueBoxEditorDecorator> 
... 

EntityEditor.java

... 
@UiField 
ValueBoxEditorDecorator<Integer> number; 
private Validator fValidator; 
private EntityEditorDriver fEditorDriver; 
... 
public void validate() { 
    Entity entity = fEditorDriver.flush(); 
    Set<ConstraintViolation<Entity>> violations = fValidator.validate(entity); 
    if (!violations.isEmpty() || fEditorDriver.hasErrors()) { 
     fEditorDriver.setConstraintViolations(violations); 
    } else { 
     // process the entity 
    } 
} 

번호 란에 아무 것도 입력하지 않고 validate()으로 전화하면 "Can not be empty."라는 메시지가 나타납니다. 가 올바르게 표시됩니다. "asdf"와 함께 validate()을 호출하면 두 메시지가 모두 비어있을 수 없습니다. 및 "잘못된 값 (asdf)"이 있지만 첫 번째 값만 표시됩니다. setConstraintViolations()을 호출하지 않으면 편집기 오류가 표시되지만 유효성 검사 위반이 표시되지 않습니다.

무엇이 누락 되었습니까?

감사합니다.

답변

1

당신은 getErrors()에있는 당신의 제약 조건 위반이

+0

감사 (AN EditorError을 감싸는 ConstraintViolation을 구현)와 병합거야, 내 현재의 해결 방법입니다. 다른 해결책을 기대하고있었습니다. – z00bs

+0

프로세스를보다 쉽게하기 위해'EditorError'에'toConstraintViolation()'메소드를 추가하는 개선 요청을 제출하는 것이 좋습니다. –

+0

http://code.google.com/p/google-web-toolkit/issues/detail?id=7809에서 완료 – z00bs