【发布时间】:2014-11-04 08:07:57
【问题描述】:
I'm writing a view which navigates to a table entry's page displayed on the left side when a table entry (on the right) is chosen.这类似于 Vaadin 网站上的地址簿教程,只是我使用了导航器和视图。
当我让导航工作时(单击 id #12 的条目导航到 localhost:8080/test/12)并且视图的 enter() 中的测试标签被更改以匹配 id,testTable.getItem(event .getParameters()) 出于某种原因返回 null,因此我无法访问该条目。
视图的 ValueChangeListener 和 enter() 如下所示。
class ValueChangeListener implements Property.ValueChangeListener {
Object testId;
@Override
public void valueChange(ValueChangeEvent event) {
// Navigate to a chosen table entry
this.testId = event.getProperty().getValue();
navigator.navigateTo("test/" + testId);
}
}
...
public void enter(ViewChangeEvent event) {
Object tmp = event.getParameters();
testName.setValue((String) tmp); // is set to the id
System.out.println(testTable.getItem(tmp) == null); // DEBUG: always returns true
}
【问题讨论】:
-
如何创建
testTable?你用的是什么类型的Container? -
@Krayo 我使用
IndexedContainer作为表格。createTestTable()将容器属性添加到ic并使用 for 循环填充它,该循环使用ic.addItem()将对象添加到表中,并在返回ic之前使用setValue()设置该对象的值。表创建类似于address book tutorial at Vaadin uses。