Vaadin数据模型不';t更新
我正在尝试开发我在瓦丁的第一个应用程序。我看到了一些组件、布局。。。。。现在我试图学习如何将UI组件与数据模型绑定 我有这门课Vaadin数据模型不';t更新,vaadin,Vaadin,我正在尝试开发我在瓦丁的第一个应用程序。我看到了一些组件、布局。。。。。现在我试图学习如何将UI组件与数据模型绑定 我有这门课 public class Utente { private String nome = "Mario"; private String cognome = "Rossi"; public Utente() { // TODO Auto-generated constructor stub } public String getNome() { r
public class Utente {
private String nome = "Mario";
private String cognome = "Rossi";
public Utente() {
// TODO Auto-generated constructor stub
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCognome() {
return cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
}
}
这个自定义组件
public class MyRegistration extends CustomComponent {
private FormLayout mainLayout;
private Button buttonSalva;
private Utente utente;
private BeanItem<Utente> beanItem;
private FieldGroup fieldGroup;
public MyRegistration() {
buildMainLayout();
setCompositionRoot(mainLayout);
}
private FormLayout buildMainLayout() {
utente = new Utente();
beanItem = new BeanItem<Utente>(utente);
fieldGroup = new FieldGroup(beanItem);
mainLayout = new FormLayout();
setWidth("100.0%");
setHeight("100.0%");
mainLayout.addComponent(fieldGroup.buildAndBind("Nome", "nome"));
mainLayout.addComponent(fieldGroup.buildAndBind("Cognome", "cognome"));
// buttonSalva
buttonSalva = new Button();
buttonSalva.setCaption("Salva");
mainLayout.addComponent(buttonSalva);
addListener();
return mainLayout;
}
private void addListener(){
buttonSalva.addClickListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
System.out.println(fieldGroup.getItemDataSource());
}
});
}
}
公共类MyRegistration扩展了CustomComponent{
私有表单布局主布局;
私用按钮SALVA;
二等兵;
私家侦探;
私人场组场组;
公开注册(){
buildMainLayout();
setCompositionRoot(主布局);
}
私有FormLayout buildMainLayout(){
utente=新utente();
beanItem=新beanItem(utente);
fieldGroup=新的fieldGroup(beanItem);
mainLayout=新的FormLayout();
设置宽度(“100.0%”);
设定高度(“100.0%”);
mainLayout.addComponent(fieldGroup.buildAndBind(“Nome”,“Nome”));
addComponent(fieldGroup.buildAndBind(“Cognome”、“Cognome”);
//纽顿萨瓦
buttonSalva=新按钮();
按钮Salva.setCaption(“Salva”);
mainLayout.addComponent(按钮SAVA);
addListener();
返回主布局;
}
私有void addListener(){
buttonSalva.addClickListener(新建Button.ClickListener(){
公共作废按钮单击(单击事件){
System.out.println(fieldGroup.getItemDataSource());
}
});
}
}
我的问题是,如果我按下按钮,如果我修改字段的内容,我总是会显示Mario Rossi
我哪里错了?您必须通过以下方式提交更改
fieldGroup.commit();
或将字段组设置为非缓冲模式:
fieldGroup.setBuffered(false);