我正在开发一个vaadin应用程序,现在我无法解决以下问题。
我有我的对象模型:
public class MyModel {
private long id;
private Date dValidoAl;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Date getDValidoAl() {
return dValidoAl;
}
public void setDValidoAl(Date dValidoAl) {
this.dValidoAl = dValidoAl;
}
}
现在我正试图以这种方式将此对象绑定到BeanItemContainer
:
Table table = new Table();
BeanItemContainer<MyModel> container = new BeanItemContainer<MyModel>(MyModel.class);
table.setContainerDataSource(container);
Object[] visibleProperties = new Object[] { "id", "dValidoAl" };
String[] columnsHeader = new String[] { "Id", "Inizio Validità" };
table.setVisibleColumns(visibleProperties);
table.setColumnHeaders(columnsHeader);
但是我收到了这个错误:
Ids必须存在于Container中或作为生成的列,缺少id:dValidoAl
我在哪里做错了?
答案 0 :(得分:1)
正如@Skizzo发布的那样,并且正如Book of Vaadin中所定义的那样,BeanItemContainer(BeanContainer的实现)将采用PropertyIds检查getter和setter。
通过检查项目属性是自动确定的 类的getter和setter方法。这需要豆子 class有公共可见性,例如本地类没有 允许。只能将相同类型的bean添加到容器中。
在这种情况下,应用DValidoAl作为容器的propertyId,您可以执行所需的操作。