Tiles
毎日コミュニケーションズ社から本サイト関連のStruts2と各コンポーネントの日本語の本が出版されることになりました。Struts2 フルスタック化&Webアプリケーション開発 ~Struts2+Spring 2+Tiles+iBATIS+GWTで作るショッピングサイト~作者: 三国逸文出版社/…
Struts2のJSPで出力にTilesのレイアウトを適用すると、利点としてレイアウト変更に容易に対応できるという点はすぐに分かるが実はもっと大きな利点がある。
Tileの一部分でさらに別のTile定義を使用するような場合、ネストして使用することになる。bodyをさらに top、center、bottom に分割する場合tiles.xmlで分割部分のdefinitionをし、 <definition name="default.layout_body" template="/tiles/layout_body.jsp"> <put-attribute name="top" type="string"></put-attribute> <put-attribute name="center" type="string">…</put-attribute></definition>
個別のページでinsertDefinition タグを呼び出して、name属性でレイアウト指定をしているが、nameに渡す属性は単なる文字列だからランタイムに変更できるはずなので実用するかどうかは別として試してみる。tilesはStruts2のタグではないのでOGNL評価はしてく…
TilesのputAttributeタグに role 属性があり、ユーザーのroleにより切り替えられるようになっている。この仕組みが Acegi による認証でも使えるのか確認してみた。 認証は Struts2 のアクションで独自に行う - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUn…
あまり同じようにしている設定を知らない。何故だろう?無駄な記述が不要でイケてると思うんだが。 tiles.xml にはレイアウトdefinitionだけを書く