Tilesを使用すると、タイルというコンポーネントの再利用に基いてWebアプリケーションのJSPページを作成できます。
このトピックでは、次の項目について説明します。
Webアプリケーションのいくつかのページのレイアウトが同じである場合、JSPフラグメントを使用できます。各JSPページを定義するには、ページに含めるJSPフラグメントを指定します。いずれかのJSPフラグメントの名前を変更した場合、そのフラグメントを含んでいる各JSPファイルを変更する必要があります。
次の図に、表示ページでコンテンツを再利用する場合の従来の方法を示します。表示する各ページに、コンテンツを提供するファイルが個別に含まれます。
Tilesテクノロジでは、異なる方法で再利用を実現します。一般的なアプリケーションの場合、同様のすべてのページについて、レイアウト・テンプレート・ページという1つのページのみを作成し、これをすべての異なるWebページ・コンテンツの表示に使用します。レイアウト・テンプレートでは、コンテンツを含める必要のあるすべての領域を指定します。つまり、必要なすべてのインクルードの領域を定義します。別の定義ファイルで、ユーザーに表示する各個別のページについて、各インクルードに使用する実際のコンテンツを定義します。異なる組合せは、それぞれ別の定義にします。これにより、レイアウト・テンプレート・ファイルのインクルード自体は変更されることがありません。
次の図で、1つのTilesレイアウト・ページを異なるコンテンツで再利用できる様子を示します。
Tiles定義は階層として作成できます。内部の定義は、外部の定義を拡張し、外部の定義のすべての属性を継承します。
要約すると、Tilesを使用する場合はまずレイアウトを定義し、次にレイアウトにコンテンツを移入する方法を定義します。(ページにファイルまたはフラグメントを含める場合、各ページごとに移入方法を個別に定義する必要があるのとは対照的です。)
コンテンツ・ページには、表示ページの各領域に表示するHTMLが含まれます。これらのページは、単純なJSPページです。
これらのページのコンテンツは、アプリケーションで表示される前に別のページに含まれるため、コンテンツ・ページには、インクルードするHTMLのみを含めます。たとえば、アプリケーションでスタイル・シートを使用する場合、すべてのコンテンツ・ページにスタイル・シートへの参照を含める必要はありません。かわりにレイアウト・ファイルに含めることが可能です。
たとえば、アプリケーションで標準的なヘッダー、メニュー、本文およびフッターというレイアウトを使用している場合、ヘッダー、メニューおよびフッター用のコンテンツ・ファイル、および各本文ファイルごとに1つのコンテンツ・ファイルを作成します。
レイアウト・ページにより、アプリケーションのページのレイアウト構造を定義します。
次に、上部にヘッダー、左にメニュー、右に本文ファイル領域、および下部にフッター領域が含まれているレイアウトを定義するレイアウト・ページの例を示します。
このレイアウトを定義するレイアウト・ファイルは次のようになります。tiles:insertタグの属性に使用されている名前は、単なるプレースホルダです。
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>
<html>
<head>
<title><tiles:getAsString name="title"/></title>
<link href="css/jdeveloper.css" media="screen" rel="stylesheet"/>
</head>
<body>
<table cellspacing="5" border="0" width="95%">
<tr>
<td colspan="2"><tiles:insert attribute="header"/></td>
</tr>
<tr>
<td><tiles:insert attribute="menu"/></td>
<td><tiles:insert attribute="body"/></td>
</tr>
<tr>
<td colspan="2"><tiles:insert attribute="footer"/></td>
</tr>
</table>
</body>
</html>
定義によってこのレイアウトが使用される際、各属性に対して使用するファイルが指定されます。
Tiles定義により、表示できるコンテンツの一部が定義されます。各定義は、1つのレイアウト・ファイルにコンテンツ・ファイルを移入する方法を指定します。
Tiles定義は、個別のページに含めるか、またはTiles定義ファイルに集約できます。「Tiles定義について」を参照してください。
Tiles定義は表示するコンテンツを指定するため、アプリケーションのページに後に挿入されるか、またはStrutsアプリケーションの場合はActionForwardsとして使用されます。
Tiles定義ファイルで使用される要素の詳細は、次を参照してください。
JSPページで使用されるTilesタグの詳細は、次を参照してください。
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
Copyright © 1997, 2007, Oracle. All rights reserved.