验证Vaadin中的Radiobuttons

时间:2017-10-10 11:40:20

标签: vaadin vaadin8

有人可以告诉我,我如何从radiobutton获得价值来验证它?

我试过这样的事情:

binder = new Binder<>();
SelectionItemConverter selectionItemConverter = new SelectionItemConverter(radioOptions);
binder.forField(radioButtonGroup).withConverter(selectionItemConverter).asRequired("Mandatory")
.bind(e -> getValue(), (b, v) -> setValue(v));
binder.setBean(this);

首先我开始使用asRequired(&#34; Mandatory&#34;)验证器,但我看不到我的字段旁边的红色星号。有没有人知道一个关于diffrent的好教程而不是字符串验证表?

1 个答案:

答案 0 :(得分:0)

您可以使用普通验证器验证的单选按钮值。如果您使用枚举值,则无法验证用户输入,因为用户可以选择有效值。

如果您希望针对其他字段验证枚举值,则可以添加一个验证器,将该字段的当前值与其他字段进行比较。重要的是要记住在绑定器中添加值更改侦听器,以便在第二个字段更改时触发验证。

RadioButtonGroup<RadioSelection> radioButtonGroup = new RadioButtonGroup<>("Answer");
radioButtonGroup.setItems(RadioSelection.values());
binder.forField(radioButtonGroup)
        .asRequired("Mandatory")
        .withValidator(value -> !(isToday(dateField) && value == RadioSelection.MAYBE),
                "Cannot answer MAYBE today")
        .bind(MyBean::getRadioSelection, MyBean::setRadioSelection);
binder.addValueChangeListener(v -> binder.validate());

同时阅读Book of Vaadin about validation

示例中使用的枚举是

public enum RadioSelection {
    YES, NO, MAYBE
}
相关问题