[Tapestry]
どうもプログラマ指向なのか、ページ仕様(拡張子page)をあまり活用せずに、HTMLテンプレート(拡張子html)にjwcのformalまたはinformalなパラメータをタグの属性に書いてしまいます。こんな感じで。
<form jwcid="@Form" listener="ognl:listeners.formSubmit">
</form>
でも、このようにはせずに、ページ仕様の中で、
<component id="form" type="Form">
<binding name="listener" expression="listeners.formSubmit"/>
</component>
と書くべきですね。
先ほどのHTMLテンプレートに関しては
<form jwcid="Form">
</form>
となりますので、よりビジネスロジックとデザインの分離が高まるわけです。確かにHTMLテンプレートにjwcのパラメータを記述する方が楽なのですが、コンポーネントが持つformalまたはinformalのパラメータをプレゼンテーション側で保有することになるため、あまり分離する意味がぼやけますね。とにかくモックとなるHTMLテンプレートが出来上がったら、jwcid属性だけを付加するように心がけて、jwcのパラメータはページ仕様に記述すべきですね。
とは言いながら、AタグによるリンクはHTMLテンプレートでも十分に動きを見れますが、inputタグのSubmitボタンなどは動きが表現しにくいです。
その場合、私は次のようにしてページ移動などをしています。TapestryのFormコンポーネントがaction属性を上書きしてくれますから、表に出ないコードになります。
<form jwcid="form" action="javascript:location.href='Next.html'">
</form>
Tapestryの力がだんだん見えてきました。静的なサイト(モック/HTMLテンプレート)を先に作成して、ある程度フローの動きが見えたところで、動的なデータに関してはjwcid属性を割り当てていく。非常に楽になりそうな予感。
Comments