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*****