ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Tapestry入門記(2) PageLink

まずは、Webの基本、リンクをクリックして他のページに飛ぶ方法です。
新規->その他->Tapestry->Tapestry Pageを選びます。
Page NameにAddInputを指定、create new classをチェックして
パッケージにhelloを指定します。クラス名は、デフォルトだと
ページ名と一緒です。Spindleにもちろんお任せです。
ページを作成すると、WEB-INFの直下にAddInput.html, AddInput.page
src/helloにAddInput.javaが作成されます。
いよいよ最初のTapestryのタグの記述。
Home.htmlに以下のように記述します。


<a href="AddInput.html" jwcid="addInput">addInput</a>
Tapestryのタグといっても、通常のアンカータグにjwcid属性をつけただけです。今度は、Home.pageにaddInputコンポーネントの記述を追加します。

<component id="addInput" type="PageLink">
<static-binding name="page">AddInput</static-binding>
</component>
pageに指定する名前は、アプリケーションの仕様書(hello.application)に
記述する必要があるかなぁと思ったのですが、なくても動きました。
デフォルトだとWEB-INFもしくはアプリケーション仕様書と同じディレクト
にページ名.pageがあると解釈されるのかもしれません。
そのうちin Actionに出てくるだろうと思い気にしないことにします。
ブラウザでaddInputのリンクをクリックすると無事にAddInputページに
移動できました。
このときのURLはhttp://localhost:8080/hello/app?service=page/AddInput
ようになります。
ページの名前がばれたら、URL直叩きされるジャンと思いながら、
とりあえずこのまま流します。
URL直叩きは、セキュリティホールになるので、きっと何か対応策があるのでしょう。