如何在wicket表中编辑值

时间:2012-08-20 14:49:01

标签: java wicket

我使用可编辑的表格和提交按钮创建了表单:

            @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));
            }
        });

它会打印旧值。那么我怎样才能获得具有新值的表格呢?

1 个答案:

答案 0 :(得分:2)

您正在这样做,文本字段无法将值写回您的域对象。

了解模型然后使用适当的模型:

listItem.add(new TextField("rightSide", new PropertyModel(game, "result.rightSide")));

还有很多其他选择,例如safemodel