リンク


Wicket ではリンクを表わすコンポーネントが複数あって、状況に応じて使い分けます。

Link


HTML の <a> タグに対応しますがそれだけでなく onclick イベントハンドラが使えるタグで有効です。まずは <a> タグの場合
<a wicket:id="page1Link" href="dummy">Page1</a>
add(new Link("page1Link") {
  @Override
  public void onClick() {
    setResponsePage(Page1.class);
  }
});
これでクリックすると onClick() の中が実行されます。この場合は Page1 に遷移します。 <a> タグ以外でも onclick イベントハンドラが使えるタグならよくて、たとえば
<p wicket:id="page1Link">Page1</p>
としておくと下記のようにレンダリングされ、クリックすると <a> タグと同じように動作します。 (折り返していますが実際は 1 行)
<p onclick="location.href='/test/app?path=0:page1Link&interface=ILinkListener';">Page1</p>

PageLink


Page へのリンクです。引数に Page のクラスを渡して生成します。
add(new PageLink("page1Link", Page1.class));
IPageLink を渡してページ生成をカスタマイズすることも可能です。
add(new PageLink("page1Link", 
  new IPageLink() {
    public Class getPageIdentity() {
      return Page1.class;
    }
    public Page getPage() {
      return new Page1("param1", 2, obj);
    }
}));

BookmarkablePageLink


ブックマーク可能な URL を生成するクラスです。前述の Link を含め Wicket では基本的にリンクはそのセッションでのみ有効ですが、それに対し BookmarkablePageLink ではセッションがなくても有効な URL を生成します。

使い方は PageLink と同様に Page クラスを渡します。
add(new BookmarkablePageLink("page1Link", Page1.class));
生成される URL は
/test/app?bookmarkablePage=my.Page1
のように bookmarkablePage=<ページ> となります。

ExternalLink


外部ページへのリンクです。<a> タグにのみ適用できます。

(使用例)
add(new ExternalLink("googleLink", "http://www.google.com"));

情報源


wicket-example の linkomatic が詳しい

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます