1

GWTエディターが可能なConstraintViolationsとEditorErrorsを同時に表示することを達成するのに苦労しています。エラーまたは検証違反のいずれかを表示することは問題ありません。

次の例numberでは、Entity

Entity.java:

....
@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()、「空にできません」というメッセージが表示されます。正しく表示されます。validate()「asdf」で呼び出すと、「空にすることはできません」という両方のメッセージが表示されると思います。および「Badvalue(asdf)」ですが、最初の値のみが表示されます。電話をかけないとエディターエラーが表示されますsetConstraintViolations()が、検証違反は表示されません。

私は何が欠けていますか?

ありがとうございました。

4

1 に答える 1

1

getErrors()それらを制約違反とマージする必要があります(ConstraintViolationをラップするを実装するEditorError

于 2012-11-25T00:02:11.403 に答える