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種類があります。
- 単一ページの紐付け(Pathパラメーター利用)
- 単一ページの紐付け(URLパラメーター利用)
- パッケージ単位の紐付け
それぞれの使い方は以下になります。
単一ページの紐付け(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パラメーター利用)”の時と同じです。
最終更新:2007年10月11日 18:49