1

Wicket 1.5 から 6.6 への移行中にスタックしました。

以前のAjaxLinkでは、 getAjaxCallDecorator()メソッドをオーバーライドし、スクリプトをpreDecorateScript(CharSequence script)でラップすることができました。

現在推奨されている方法は、getPrecondition(Component component) メソッドで AjaxCallListener を使用することですしかし、 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

}

次に、 を介して に追加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 に答える