最近我将Vaadin版本的7升级到8.3.2。较新版本中引入的更改之一是不推荐使用setContainerDataSource方法。所以我将代码更改为:
List<Person> people = Arrays.asList(
new Person("Nicolaus Copernicus", 1543),
new Person("Galileo Galilei", 1564),
new Person("Johannes Kepler", 1571));
// Create a grid bound to the list
Grid<Person> grid = new Grid<>();
grid.setItems(people);
grid.addColumn(Person::getName).setCaption("Name");
grid.addColumn(Person::getBirthyear).setCaption("Year of birth");
此处的人员类实施:
public class Person implements Serializable {
public Person(String name, int birthyear) {
this.name = name;
this.birthyear = birthyear;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBirthyear() {
return birthyear;
}
public void setBirthyear(int birthyear) {
this.birthyear = birthyear;
}
private String name;
private int birthyear;
}
Gird是VerticalLayout中VerticalLayout的一部分。 不幸的是,在浏览器中我只能看到表格的边框 - 没有值。怎么会这样?我错过了什么吗?
答案 0 :(得分:2)
我查看了你的代码,它似乎是正确的,所以我把它复制到普通的Vaadin 8原型,它对我有用。我可以看到网格内容正确File.rm/1
你还记得重新编译widgetset吗?