wicketでは、WebPageとURLを結びつけの為にniceURLという仕組みを使います。(多分)

このページは、このniceURLのサンプルページの簡単なまとめです。
サンプルページ


具体的には、ユーザーはApplicationの初期化クラスのinitメソッドの中で、mount系メソッドを使うことになります。

例えば、mekeApp という名前のWebアプリケーションで、/mekeApp/create というパスに CreatePage を割り当てたい場合、以下のように記述します。

protected void init() {
 super.init();
 super.mountBookmarkablePage("create", CreatePage.class);

また、このように”静的なパス”で呼び出せるWebPageをwicketでは、BookmarkablePage という名称で呼んでいるようです。


mount系メソッドの種類


mount系メソッドには、以下の3種類があります。

  1. 単一ページの紐付け(Pathパラメーター利用)
  2. 単一ページの紐付け(URLパラメーター利用)
  3. パッケージ単位の紐付け

それぞれの使い方は以下になります。

単一ページの紐付け(Pathパラメーター利用)


mountBookmarkablePageメソッドを使います。
サンプルでは以下のようになっています。

mountBookmarkablePage("/home", Home.class);

とすると、

/mekeApp/home というパスでHome ページにアクセスできます。

この方式を使った場合、WebPageクラスにパラメーターを渡す場合は、URLのパスとして値を渡します。

例えば、param1 に meke, param2 に 100 という値を渡したい場合URLは以下のようになります。

/mekeApp/home/param1/meke/param2/100/


また、WebPageクラス側では、パラメーターを受け取る為に PageParameters を引数にとるコンストラクタを用意しておく必要があります。


public class MekePage extends WebPage{
 public MekePage(PageParameters parameters){
 ...


単一ページの紐付け(URLパラメーター利用)


mountBookmarkablePageWithUrlCodingメソッドを使います。
サンプルでは以下のようになっています。。。

と思ったら、wicket 1.3(beta3)では、メソッドが無くなっている??

もしかして、サンプル古いのかな??
というわけで、一旦保留します・・・。

パッケージ単位の紐付け


mountメソッドを使います。
このメソッドを使うと、指定したWebPageクラスと同じパッケージに含まれるページクラスを自動的にURLに紐付けることが出来ます。
楽チン!

ただし、URLの末尾にWebPageの名前が付いてしまいます。

サンプルでは以下のようになっています。

mountBookmarkablePage("/base", PackageName.forClass(Home.class));

とすると、

/mekeApp/base/Home/ というパスでHome ページにアクセスできます。
同じパッケージ内に、Friend.class というWebPageがある場合は
/mekeApp/base/Friend/ というパスになります。

ページへのパラメーターの渡し方は、”単一ページの紐付け(Pathパラメーター利用)”の時と同じです。

タグ:

java wicket
最終更新:2007年10月11日 18:49