【问题标题】:AjaxFormComponentUpdatingBehavior not working in Wicket 8AjaxFormComponentUpdatingBehavior 在 Wicket 8 中不起作用
【发布时间】:2019-07-11 07:08:55
【问题描述】:

我正在从 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 中,它运行良好。其他组件类型也会发生同样的事情,例如选择/下拉选择。

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

【问题讨论】:

  • 如果您尝试将onchange 替换为change 会怎样?我似乎隐约记得事件名称不再需要前缀,但我不确定哪个 Wicket 版本引入了此更改
  • @JeroenSteenbeeke 嗯,你是对的,它似乎在两个版本中都可以与 change 一起使用。您可能应该将此作为答案发布。

标签: java ajax wicket


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多