Struts2とTilesの同居
Struts2をベースに作成しているWebアプリにTilesをインストールしました。
Struts2では、Result Typeにtilesが用意されていますが、それは使用せずに使用する方法をとりました。
参考にしたサイトはこちらです
私のStruts−Tilesインテグレーション - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク
http://d.hatena.ne.jp/nikkei225f/20071101/1193933088
web.xmlにlistenerを追加
<!-- web.xml に追加 --> <listener> <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> </listener>
/WEB-INF/tiles.xmlを作成
<!-- WebContent/WEB-INF/tiles.xml --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <definition name="default.layout" template="/WEB-INF/tiles/layout.jsp"> <put-attribute name="title" value="デフォのタイトル" /> <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" /> <put-attribute name="body" type="string"><![CDATA[override]]></put-attribute> <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" /> </definition> </tiles-definitions>
layout.jsp、layoutファイル
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%> <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- scriptとか読みこもう --> <script type="text/javascript" src="../js/jquery.js"></script> <title><tiles:insertAttribute name="title" /></title> </head> <body> <tiles:insertAttribute name="menu" /> <div class="container"> <div class="content"> <tiles:insertAttribute name="body" /> </div> <tiles:insertAttribute name="footer" /> </div> </body> </html>
/WEB-INF/content/tekitou.jsp
Struts2がディスパッチするjspファイル。
普通にjspを呼ぶように呼ぶ。
<%@page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> <%@ taglib prefix="s" uri="/struts-tags"%> <tiles:insertDefinition name="default.layout"> <tiles:putAttribute name="title">タイトル</tiles:putAttribute> <tiles:putAttribute name="body"> <h1>うぇーい</h1> <p>うぇいうぇい</p> </tiles:putAttribute> </tiles:insertDefinition>
あと、menu.jspとかfooter.jspとかを適当に作成する。
あ、あと必要なjarファイルとか入れる必要あるや。