0

GWT エディターと javax 検証を使用しています。

私はそのような子ビーンを持つモデルビーンを持っています - >

public interface BeanA {

    @Valid
    BeanB getBeanB();

    void setBeanB(BeanB b);
}

public interface BeanB {

    @NotEmpty
    public String getValue();

    public void setValue(String value);

}

LeafValueEditor、HasEditorErrors インターフェースを実装する Widget があります。

値は問題なくバインドされているようです。

    public class MyWidget extends Composite implements 
                                 LeafValueEditor<String>, HasEditorErrors<String>{
    ...

    @Override
    public void showErrors(List<EditorError> errors) {
           // Even though the error is flagged 
           // the errors collection does not contain it.    
           }
}

検証を呼び出し、ウィジェットの getValue が null を返すと、ConstraintViolation コレクションにエラーが含まれますが、showErrors が呼び出されると、リストは空になります。

違反が見つかったのに、ウィジェットの showErrors に到達しない理由はありますか?

4

2 に答える 2

0

GWT エディターを使用している場合はSimpleBeanEditorDriver、GWT.create(...) によって作成されたインターフェイスがあります。このインターフェイスにはsetConstraintViolations(violations)、制約違反を取得するメソッドがあります。モデルを検証するとSet<ConstraintViolation<E>>、違反として発生し、これをエディタードライバーに渡します。例えば

Set<ConstraintViolation<E>> violations = getValidator().validate(model,
            groups);
getEditorDriver().setConstraintViolations(violations)

showErrors(List<EditorError> errors)この後、ウィジェットのメソッドでウィジェット固有のエラーが発生します。

于 2012-11-10T09:46:21.527 に答える
0

これは GWT 2.4 の問題のようです。GWT 2.5 で同じ例を実行したところ、パスが正しく設定され、エラーの収集が正しく行われました。

于 2012-11-11T19:38:54.940 に答える