我在从Wicket 1.5迁移到6.6之前陷入困境。
早期 AjaxLink 允许覆盖 getAjaxCallDecorator()方法并使用 preDecorateScript(CharSequence脚本)包装脚本。
现在推荐的方法是使用 AjaxCallListener 和 getPrecondition(组件组件)方法。但是如何使用 Component component 参数包装源脚本?
答案 0 :(得分:1)
不知道我是否理解正确。我们这样做:
public class MyAjaxCallListener implements IAjaxCallListener{
@Override
public CharSequence getBeforeHandler(Component component) {
return null;
}
@Override
public CharSequence getPrecondition(Component component) {
return YOUR_SCRIPT;
}
// ... not needed overrides can return null
}
然后通过Behavior
将其添加到AjaxLink
。
ajaxLink.add(new AjaxEventBehavior("onclick") {
@Override
protected void onSubmit(AjaxRequestTarget target) {
//do stuff
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new MyAjaxCallListener());
}
});