WicketでURLをStringで取得する方法
WicketではWebApplicationを継承したクラスのinitメソッドの中で、PageクラスのURLを指定します。
リンクでこのURLを使いたいときには、BookmarkableLinkのようなLink系のクラスを使えば問題ないにですが、メールの時などURLをStringで取得したいときは結構あると思います。
その場合、WebPageクラスのurlForというメソッドに取得したいページのPageクラスとパラメータを渡してやれば、BookMarkableなURLを取得することができます。
public class IndexPage extends WebPage { public IndexPage() { String url = urlFor(IndexPage.class, new PageParameters("id=0")).toString(); } }
このとき得られるURLは相対的なURLになるので、絶対URLを取得したい場合は以下のように行います。
RequestUtils.toAbsolutePath(url);
また、FormやPanelのようなコンポーネントで実行したい場合は、getPageメソッドでページクラスを取得してからurlForを実行します。