GWT 편집기에서 가능한 한 ConstraintViolation
및 EditorError
을 표시하는 데 어려움을 겪고 있습니다. 오류 또는 유효성 검증 위반을 표시하는 것은 문제가되지 않습니다.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()
을 호출하지 않으면 편집기 오류가 표시되지만 유효성 검사 위반이 표시되지 않습니다.
무엇이 누락 되었습니까?
감사합니다.
감사 (AN
EditorError
을 감싸는ConstraintViolation
을 구현)와 병합거야, 내 현재의 해결 방법입니다. 다른 해결책을 기대하고있었습니다. – z00bs프로세스를보다 쉽게하기 위해'EditorError'에'toConstraintViolation()'메소드를 추가하는 개선 요청을 제출하는 것이 좋습니다. –
http://code.google.com/p/google-web-toolkit/issues/detail?id=7809에서 완료 – z00bs