Struts2.1とTiles
今回のアプリケーションではApacheのtilesを使っています。
Struts2と連携するためにはweb.xmlに以下の記述が必要です。
<listener> <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> </listener>
Tilesを使用するためには以下のJARファイルが必要です。
tiles-api-2.2.0.jar
tiles-core-2.2.0.jar
tiles-jsp-2.2.0.jar
tiles-servlet-2.2.0.jar
tiles-template-2.2.0.jar
Tilesのテンプレートの例は以下の様になります。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> <tiles-definitions> <definition name="nomenu.layout" template="/WEB-INF/tiles/layout.jsp"> <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" /> <put-attribute name="menu" value="/WEB-INF/tiles/noMenu.jsp" /> <put-attribute name="body" type="string"></put-attribute> <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" /> </definition> <definition name="menu.layout" extends="nomenu.layout"> <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" /> </definition> </tiles-definitions>
Tilesを利用したJSPファイルの例です。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> <html> <tiles:insertDefinition name="menu.layout"> <tiles:putAttribute name="body"> <s:include value="../jsp/retrieveResult.jsp"></s:include> </tiles:putAttribute> </tiles:insertDefinition> </html>
menyu.layoutというテンプレートを使用し、bodyの部分に../jsp/retrieveResult.jspを埋め込む内容になっています。