【发布时间】: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一起使用。您可能应该将此作为答案发布。