StrutsのTiles(タグライブラリ)
開発メモ.COM
Java
Eclipse Eclipse
Eclipseプラグイン Eclipseプラグイン(Plugin)
Struts Struts
 
Strutsのインストール  インストール
Strutsのアクションフォーム  アクションフォーム
Strutsのアクション  アクション
StrutsのTiles  Tiles
JUnit関連 テスト関連

データベース
MYSQL MYSQL
PostgreSQL PostgreSQL

サーバ環境関連
レンタルサーバ レンタルサーバ
Apache、PHP Apache
Tomcat Tomcat
JBOSS JBOSS
CVS CVS

その他
開発メモの利用において 本サイトご利用において
開発メモのサイトマップ サイトマップ
開発メモの問合せ 問い合わせ

TOP > Struts > Tiles(タグライブラリ)

StrutsのTiles(タグライブラリ)

JSPにおけるメニュー等のコンテンツ内で必ず記述する内容をテンプレート化することができる
StrutsのTiles(タグライブラリ)に関する設定などtiles-defs.xml、struts-config.xml等の設定、
jspの記述内容を説明していきます。


web.xmlの設定

StrutsのTilesタグをjspで読み込むため、web.xmlにTilesタグを有効にする設定をします。
下記の設定内容の場合、struts-tiles.tldファイルがWEB-INF配下にあることを前提としています。

<taglib>
    <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>

Tilesタグで使用するjspの作成

次にStrutsのTilesタグで使用するjsp作成を行ないます。今回Tilesを使用して作成するページの
イメージは上部にタイトル、左にメニュー、右にコンテンツ内容といったページを作成します。
まずはページ全体のレイアウト(layout.jsp)を作成します。

<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<html:html>
<body>
<table width="100%">
    <tr colspan="2">
        <td align="center"><tiles:getAsString name="title"/></td>
    </tr>
    <tr>
        <td width="20%" valign="top"><tiles:insert attribute="menu"/></td>
        <td width="80%" valign="top"><tiles:insert attribute="contents"/></td>
    </tr>
</table>
</body>
</html:html>

getAsString属性は文字列をinsert属性はリソース(jsp等)を埋め込むことができます。

tiles-defs.xmlの設定

上記で作成したレイアウトjspの設定をStrutsのtiles-defs.xmlに記述します。

<tiles-definitions>
    <definition name="tilesName" path="/layout.jsp">
        <put name="title" value="タイトルです"/>
        <put name="menu" value="/menu.jsp"/>
        <put name="contents" value="/contents.jsp"/>
    </definition>
</tiles-definitions>

上記の例では全体レイアウトにlayout.jsp、メニューにmenu.jsp、コンテンツにcontents.jspを設定し
タイトルに「タイトルです」という文字を表示しています。

struts-config.xmlの設定

struts-config.xmlにTilesタグを有効にする設定とアクションからの呼び出し方法を
記述します。アクション(Action)の設定を参照してください。

<plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
    <set-property property="moduleAware" value="true" />
</plug-in>

上記の設定でStrutsのTilesプラグインを有効にしています。
また、definitions-config属性でTilesを設定したファイル(tiles-defs.xml)を指定します。
下記はアクションからTilesで設定した内容を呼び出す方法です。

<action-mappings>
    <action name="formName" path="/MyAction" type="pkg.MyAction" validate="false" scope="request">
        <forward name="success" path="tilesName"/>
        <forward name="error" path="error.jsp"/>
    </action>
</action-mappings>

通常のjspを直接呼び出す場合と違う箇所はforwardタグのpath属性にtiles-defs.xmlで設定した
definitionタグのname属性(上記の例の場合はtilesName)を設定するだけです。
以上でStrutsのTilesの設定は完了します。

関連書籍

Strutsに関連する書籍をいくつか紹介します。