0

ValueBoxEditorDecorator がテキスト ボックスの右側にエラーを表示するという印象を受けました。このコードを実行しています。エラーが検出されると警告ボックスが表示されますが、ValueBoxEditorDecorator には何も表示されません。

public class AddressEditor extends Composite implements Editor<Address>, HasEditorErrors<Address> 
{
    private static final Binder binder = GWT.create(Binder.class);
    @UiField ValueBoxEditorDecorator<String> name;

    interface Binder extends UiBinder<Widget, AddressEditor> {
    }

    public AddressEditor() {
        initWidget(binder.createAndBindUi(this));
    }

    @Override
    public void showErrors(List<EditorError> errors) {
        name.showErrors(errors);
        if (errors.size()>0)
        {
            StringBuilder sb = new StringBuilder();
            for(EditorError e : errors)
            {
                sb.append(e.getMessage());
            }
            Window.alert(sb.toString());
        }
    }

これはxml uiです。

<e:ValueBoxEditorDecorator ui:field="name">
    <e:valuebox>
        <g:TextBox/>
    </e:valuebox>
</e:ValueBoxEditorDecorator>

編集:

これは私の検証検出コードです。おそらく、エラーのパス ファイルに関するデータを消去しています。

a = editorDriver.flush();

ValidatorFactory factory = Validation.byDefaultProvider().configure().buildValidatorFactory();
Validator validator = factory.getValidator();

Set<ConstraintViolation<Address>> violations = validator.validate(a);

@SuppressWarnings({ "unchecked", "rawtypes" })
Set<ConstraintViolation<?>> violations2 = (Set<ConstraintViolation<?>>) (Set) violations;

editorDriver.setConstraintViolations(violations2);
4

1 に答える 1

0

それを見つけた。問題は、私の JSR303 アノテーションが getter ではなくプライベート フィールドにあることでした。

于 2013-10-14T21:25:57.140 に答える