[Wicket-ja-user 414] wicket1.4.6でのAjaxLazyLoadPanel配下のBookmarkablePageLink

Back to archive index

Ken-ichi Ishii ishii****@pfu*****
2010年 2月 3日 (水) 11:47:28 JST


石井と申します。

某ISPのサービスにてWicketを活用させて頂き、大変助かっております。

wicket1.4.3で動いていたものがwicket1.4.6で動きが変わってしまった
ものがあるのでご報告(ご相談)させて頂きたいと思います。

サンプルソースを文末に添付させて頂きましたが、Application#init()
にて、
  mountBookmarkablePage("/hello/work", HelloWork.class);
というようなブックマーク定義を行い、Panelにて
  add(new BookmarkablePageLink<Void>("link", HelloWork.class));
とした実装をした場合、wicket1.4.3では、通常のパネルでも
AjaxLazyLoadPanelでも、"link"で指定したタグを選択した際のリンク
URLは /hello/work となっていたのですが、wicket-1.4.6を適用すると、
パネルのほうのリンクは /hello/work となり問題ないのですが、
AjaxLazyLoadPanelで表示したほうのリンクが、/hello/hello/workと
なってしまいます。

通常のパネルでは問題ないので、BookmarkablePageの使い方が誤ってい
るという訳ではないと思ってはいるのですが、これはwicket-extensions
の問題でしょうか?(本家のBugReportにはそれっぽいものは見つけられ
ませんでしたが...) もしくはBookmarkablePageの使い方に誤りがある
でしょうか?

情報等をお持ちの方がいらっしゃいましたらご教示頂ければ幸いです。

よろしくお願い致します。

[Application.java]
-----
public class Application extends WebApplication {
    @Override
    protected void init() {
        mountBookmarkablePage("/hello/work", HelloWork.class);
    }

    public Class getHomePage() {
        return HelloWork.class;
    }
}
-----
[HelloWork.java]
-----
public class HelloWork extends WebPage {
    public HelloWork() {
        add(new HelloPanel("panel"));
        add(new AjaxLazyLoadPanel("panel2") {
            private static final long serialVersionUID = 1L;
            @Override
            public Component getLazyLoadComponent(String id) {
                return new HelloPanel(id);
            }
        });
    }
}
-----
[HelloPanel.java]
-----
public class HelloPanel extends Panel {
    private static final long serialVersionUID = 1L;
    public HelloPanel(String id) {
        super(id);
        add(new BookmarkablePageLink<Void>("link", HelloWork.class));
    }
}
-----
-- 
石井 健一   E-mail / ishii****@pfu*****




Wicket-ja-user メーリングリストの案内
Back to archive index