2012年2月11日土曜日

Struts2(Tiles その2 拡張)

こんにちは, 前回に引き続いて, Struts2 のtilesです。

Struts2(tiles) では, ライブラリや, 設定についてでした。今回は, テンプレートをつくって, 同じテンプレートを拡張して, 他のページをつくることについてです。


1. テンプレートの作成

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE html>
<html>
<head>
<title><tiles:insertAttribute name="title"/></title>
<tiles:insertAttribute name="script" />
</head>
<div id="container">
<div id="head">
<tiles:insertAttribute name="head" />
</div>
<div id="content">
<tiles:insertAttribute name="body" />
</div>
<div id="foot">
<tiles:insertAttribute name="footer" />
</div>
</div>
</html>

前回に引き続き, 1段組のレイアウトです。さらに JavaScript ようのtiles を入れました。

2. tiles.xml の設定


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd ">
<tiles-definitions>
<definition name="index" template="/WEB-INF/jsps/index.jsp">
<put-attribute name="title" value="Resource Editor"/>
<put-attribute name="script" value="/WEB-INF/jsps/scripts.jsp"/>
<put-attribute name="head" value="/WEB-INF/jsps/header.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsps/main.jsp"/>
<put-attribute name="footer" value="/WEB-INF/jsps/footer.jsp"/>
    </definition>
   
    <definition name="product" extends="index">
<put-attribute name="script" value="/WEB-INF/jsps/product/scripts.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsps/product/product.jsp"/>
</definition>

<definition name="files" extends="index">
<put-attribute name="script" value="/WEB-INF/jsps/files/scripts.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsps/files/files.jsp"/>
</definition>
</tiles-definitions>

tiles の設定です。 今回, index というテンプレートをつくりました。その上で, そのindex のページ要素をりようしつつ. パーツを少し変更したものを使う  product と files というページを作りました。


<definition name="product" extends="index">  ここで, extends というキーワードを使い, index と
を拡張しますよという意味を加えます。

products では, index の要素を使いつつ, script と body のところは独自のものを使いたいという設定を書いています。

このように, Java のクラスの拡張のように, ページを作っておいて, 一部をoverride するようなことがtiles ではできるわけです。






















0 件のコメント:

コメントを投稿