目次へ

19. レイアウト

19.1. Tileの挿入

この章では、前章で例示した以下のレイアウトで構成されるページを、Tilesで作成する方法について説明します。

ヘッダー

メニュー コンテンツ
フッター

作成にはTilesタグライブラリを使用しますので、まずその設定を行います。Strutsのlibディレクトリに「struts-tiles.tld」ファイルがありますので、このファイルを適当なディレクトリに追加してください。そしてweb.xmlに以下の設定を追加してください。

<taglib>
  <taglib-uri>http://jakarta.apache.org/struts/tags-tiles</taglib-uri>
  <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>

続いて、先ほどのレイアウトに従ったJSPページを作成します。前章で作成した「/WEB-INF/jsp/layout.jsp」に置き換えてください。このJSPページでは、<table>を使用してレイアウトを行っています。

<%@page contentType="text/html; charset=EUC-JP" %>
<%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<html><body>
<table width="100%">
  <!-- ヘッダー部分-->
  <tr><td colspan="2"><tiles:insert page="/WEB-INF/jsp/header.html" /></td></tr>
  <tr>
    <!-- メニュー部分-->
    <td width="20%"><tiles:insert page="/WEB-INF/jsp/menu.html" /></td>
    <!-- コンテンツ部分-->
    <td><tiles:insert page="/WEB-INF/jsp/content.jsp" /></td>
  </tr>
  <!-- フッター部分-->
  <tr><td colspan="2"><tiles:insert page="/WEB-INF/jsp/footer.html" /></td></tr>
</table>
</body></html>

ここで使用している<tiles:insert>タグは、指定したリソースをincludeするタグです。「page」属性で指定されたリソースをincludeして出力します。リソースはアプリケーションルートからのパスか、JSPページからの相対パスで指定します。「page」属性の代わりに、「template」「component」属性を用いても同じです。<jsp:include>アクションを用いても同じ機能を実現できますが、<tiles:insert>の方が高度な機能を持っているのでこちらを使用します。それらの機能については後述します。

include先のリソースを準備し、上記JSPページを使用したTilesの組み合わせを表示させると、最初に示したレイアウトに従ったページが表示されます。

(実習課題1)

サンプルで示したレイアウトに従ったページを2つ以上用意し、Tilesを用いて表示させること。

  • コンテンツの部分は異なったものにすること。
  • コンテンツの部分以外は同じにすること。
  • メニューは、それぞれのURLへのリンクとする事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp