AjaxFormComponentUpdatingBehavior 在 Wicket 8 中不起作用

AjaxFormComponentUpdatingBehavior not working in Wicket 8

我正在从 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 中,它工作正常。其他组件类型也会发生同样的事情,例如select/DropDownChoice.

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

前缀为 on 的事件自 Wicket 6 以来已被弃用。在 Wicket 8 中,已删除对它们的支持。您可以通过将 onchange 更改为 change.

让这些组件再次工作

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