我使用可编辑的表格和提交按钮创建了表单:
@Override
protected void populateItem(final Item<Game> listItem) {
final Game game = listItem.getModelObject();
listItem.setModel(new CompoundPropertyModel<Game>(game));
listItem.add(new TextField("players", Model.of(game.getPlayerResult().getPlayer().getName() + ":"
+ game.getOpponent().getPlayer().getName())));
listItem.add(new TextField("leftSide", Model.of(game.getResult().getLeftSide())));
listItem.add(new TextField("rightSide", Model.of(game.getResult().getRightSide())));
listItem.add(new CheckBox("overtime", Model.of(game.getResult().getOvertime())));
}
现在我想保存我插入的新值,但是当我打电话时:
add(new Button("submit") {
private static final long serialVersionUID = 1L;
@Override
public void onSubmit() {
Iterator<Item<Game>> a = dataView.getItems();
while (a.hasNext()) {
Game game = a.next().getModelObject();
System.out.println(game.getPlayerResult().getPlayer().getName());
}
setResponsePage(new SchedulePage(tournament, table));
}
});
它会打印旧值。那么我怎样才能获得具有新值的表格呢?
答案 0 :(得分:2)
您正在这样做,文本字段无法将值写回您的域对象。
了解模型然后使用适当的模型:
listItem.add(new TextField("rightSide", new PropertyModel(game, "result.rightSide")));
还有很多其他选择,例如safemodel