Как получить доступ к TextField из BeanFieldGroup?

как я могу установить значение BeanFieldGroup в TextField, созданное в следующем выражении:

private TextField name  = new TextField("Name");
BeanFieldGroup<MyBean> binder = new BeanFieldGroup<MyBean>(MyBean.class);
BeanFieldGroup<MyBean> fieldGroup = new BeanFieldGroup<MyBean>(MyBean.class);


fieldGroup.setItemDataSource(new MyBean());
fieldGroup.bindMemberFields(this);
layout.addComponent(TextField);

я пытаюсь установить

name = (TextField) binder.getField("name");

но значение bean value не получено, пожалуйста, помогите

заранее спасибо


person Sivakumar M    schedule 01.07.2014    source источник


Ответы (1)


Вы используете два объекта BeanFieldGroup, привязываясь к первому (fieldGroup) и получая поле от второго (binder). Это работает для меня:

public class MyUI extends UI {

@Getter
@Setter
private TextField name = new TextField("Name");

@Override
public final void init(VaadinRequest request) {
    VerticalLayout layout = new VerticalLayout();
    BeanFieldGroup<MyBean> fieldGroup = new BeanFieldGroup<MyBean>(MyBean.class);

    fieldGroup.setItemDataSource(new MyBean());
    fieldGroup.bindMemberFields(this);
    name = (TextField) fieldGroup.getField("name");
    layout.addComponent(name);
    setContent(layout);
}

public static class MyBean {
    @Getter
    @Setter
    private String name;
}
}
person raffael    schedule 02.07.2014