1

我在从 Wicket 1.5 迁移到 6.6 的过程中卡住了。

早期的 AjaxLink允许覆盖getAjaxCallDecorator()方法并使用preDecorateScript(CharSequence script)包装脚本。

现在推荐的方法是使用AjaxCallListenergetPrecondition(Component component)方法。但是如何使用Component 组件参数包装源脚本?

4

1 回答 1

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

}

然后你通过 an 添加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());
   }
});
于 2013-03-30T08:02:07.583 回答