AjaxFormComponentUpdatingBehavior在Wicket 8中不起作用

时间:2019-07-11 07:08:55

标签: java ajax wicket

我正在从Wicket 6切换到Wicket 8,AjaxFormComponentUpdatingBehavior似乎不再起作用。

示例页面:

    public HomePage() {
        final Form<Void> form = new Form<>("form");
        final TextField<String> txt = new TextField<>("txt", new Model<>());
        txt.add(new AjaxFormComponentUpdatingBehavior("onchange") {
            private static final long serialVersionUID = 1L;

            @Override
            protected void onUpdate(final AjaxRequestTarget target) {
                System.out.println("update: " + txt.getValue());
            }
        });
        form.add(txt);
        add(form);
    }

和相应的html:

<form wicket:id="form">
<input wicket:id="txt">
</form>

在Wicket 8.5.0中,从未调用onUpdate方法,并且没有错误消息。在Wicket 6中,它工作正常。其他组件类型也会发生相同的情况,例如选择/ DropDownChoice。

这是一个错误吗?还是我做错了什么?

1 个答案:

答案 0 :(得分:5)

从Wicket 6开始,以on为前缀的事件已被弃用。在Wicket 8中,已删除了对事件的支持。通过将onchange更改为change,可以使这些组件重新工作。

另请参阅:https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+8.0