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
我正在从 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