WebアプリケーションのTilesについて

JDeveloperを使用すると、Tiles定義ファイルをWebアプリケーションに追加する際、定義ファクトリの初期化に必要なコードを、関連付けられた構成ファイルに自動的に追加できます。

このトピックでは、次の項目について説明します。

StrutsベースのアプリケーションのTiles

Strutsベースのアプリケーションの場合、TilesプラグインをStruts構成ファイルで宣言する必要があります。

アプリケーションが複数のモジュールで構成される場合、Tiles定義を使用する各モジュールのStruts構成ファイルでTilesプラグインを指定する必要があります。複数のStruts構成ファイルをピア構成ファイルとして使用している場合、Tilesプラグインはそれらのファイルのうちの1つでのみ指定する必要があります。複数のStruts構成ファイルの詳細は、Struts構成ファイルについてを参照してください。

Tiles定義ファイルをStrutsアプリケーションのプロジェクトに追加する際、Tilesサーブレットをアプリケーションのweb.xmlファイルに追加するかどうか尋ねられます。Strutsベースのアプリケーションの場合、web.xmlファイルでのこのエントリは不要なため、JDeveloperでのTilesサーブレットの追加は行わないでください。かわりに、JDeveloperによってTilesプラグインがプロジェクトのStruts構成ファイルに自動的に追加されます。

たとえば、TilesプラグインのStruts構成ファイルのエントリは、次のようになります。

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

JDeveloperにより、指定した場所のプロジェクトにTiles定義ファイルが追加されます。StrutsベースのアプリケーションでTilesを使用するために必要な作業は、これだけです。

アプリケーションに別のTiles定義ファイルを追加する場合、JDeveloperによってStruts構成ファイルに追加されます。たとえば、次のようにすると、Tiles定義ファイルtiles-base.xmlが追加されます。

<plug-in className="org.apache.struts.tiles.TilesPlugin">
  <set-property property="definitions-config"
                value="/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-base.xml"/>
  <set-property property="module-aware" value="true"/>
  <set-property property="definitions-parser-validate" value="true"/>
</plug-in>    

TilesをStrutsアプリケーションで使用するには、Tiles定義に直接移動できます。詳細は、「StrutsアプリケーションでのTiles定義への移動」を参照してください。

JSFアプリケーションのTiles

JSFアプリケーションでTilesを使用するには、定義ファクトリの初期化に必要なサーブレットを、アプリケーションのデプロイメント・ディスクリプタ・ファイルweb.xmlで宣言する必要があります。

Tiles定義ファイルをJSFアプリケーションのプロジェクトに追加する際、Tilesサーブレットをアプリケーションのweb.xmlファイルに追加するかどうか尋ねられます。JSFアプリケーションの場合、JDeveloperによってこのエントリを追加します。

Tilesサーブレットのエントリは、load-on-startupタグの2を使用し、Facesサーブレットのエントリの後に続きます。この順番を維持することが重要です。Tilesサーブレットは、Facesサーブレットの後にロードします。

web.xmlファイルに追加されたエントリには、次のものが含まれます。

<servlet>
  <servlet-name>tiles</servlet-name>
  <servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
  <init-param>
    <param-name>definitions-config</param-name>
    <param-value>/WEB-INF/tiles-defs.xml</param-value>
  </init-param>
  ...
  <load-on-startup>2</load-on-startup>
</servlet>    

他のTiles定義ファイルをプロジェクトに追加すると、JDeveloperにより、それらの名前をこのサーブレット定義に追加できます。たとえば、次の例では、Tiles定義ファイルtiles-stds.xmlが追加されています。

<servlet>
  <servlet-name>tiles</servlet-name>
  <servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
  <init-param>
    <param-name>definitions-config</param-name>
    <param-value>/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-stds.xml</param-value>
  </init-param>
  ...
  <load-on-startup>2</load-on-startup>
</servlet>    

JDeveloperによってTiles定義ファイルが作成され、必要なサポートがプロジェクトにstruts.jarファイルの形式で追加されます。これは、TilesがStrutsに付属しているためです。struts.jarが含まれるのは、JSFとTilesを使用するためにStrutsそのものが必要だからではなく、struts.jarファイル内でTilesパッケージが配布されているためです。

TilesをJSFアプリケーションで使用する方法の詳細は、「JSFアプリケーションでのタイル定義の使用」を参照してください。


Tiles定義の使用
プロジェクトへのTiles定義ファイルの追加
StrutsアプリケーションでのTiles定義への移動
JSFアプリケーションでのタイル定義の使用

Tilesの詳細および使用方法は、Apacheのサイトの説明を参照してください。

http://struts.apache.org/api/org/apache/struts/tiles/package-summary.html#package_description

Tilesタグ・ライブラリのリファレンス情報は、次のサイトを参照してください。

http://struts.apache.org/userGuide/struts-tiles.html

Tilesのユーザー・ガイドは、次のサイトを参照してください。

http://struts.apache.org/userGuide/dev_tiles.html