我正在从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。
这是一个错误吗?还是我做错了什么?
答案 0 :(得分:5)
从Wicket 6开始,以on
为前缀的事件已被弃用。在Wicket 8中,已删除了对事件的支持。通过将onchange
更改为change
,可以使这些组件重新工作。
另请参阅:https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+8.0