Tiles框架用来布局还是很方便的,配置步骤如下:
1、引包(我用的tiles依赖于struts2.1.6)
基本包(6个)
1).commons-logging-1.0.4.jar
2).commons-fileupload-1.2.1.jar
3).ognl-2.6.11.jar
4).struts2-core-2.1.6.jar
5).xwork-2.1.2.jar
6).freemarker-2.3.13.jar
tiles必须包(7个)
1).struts2-tiles-plugin-2.1.6.jar
2).tiles-api-2.0.6.jar
3).tiles-core-2.0.6.jar
4).tiles-jsp-2.0.6.jar
5).commons-digester-1.8.jar
6).commons-collections-3.2.jar
7).commons-beanutils-1.7.0.jar
2、把tiles-jsp-2.0.6.jar包下的tiles-jsp.tld 拷贝到WEB-INF下WEB-INF/tiles-jsp.tld
3、创建tiles.xml放在WEB-INF下WEB-INF/tiles.xml 如下:
<?xml version="1.0" encoding="GB2312" ?>
<!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="xixi.haha" template="/layout.jsp">
<put-attribute name="header" value="/head.jsp" />
<put-attribute name="sidebar" value="/siderbar.jsp" />
<put-attribute name="contant" value="/contant.jsp" />
<put-attribute name="footer" value="/footer.jsp" />
</definition>
</tiles-definitions>
4.在web.xml添加如下:
<context-param>
<param-name>org.apache.tiles.CONTAINER_FACTORY</param-name>
<param-value>
org.apache.struts2.tiles.StrutsTilesContainerFactory
</param-value>
</context-param>
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
5.struts.xml(src)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="tiles-default">
<action name="XXAction" class="com.XXAction">
<result name="success" type="tiles">xixi.haha</result>
</action>
</package>
</struts>
6.创建XXAction
package com;
public class XXAction {
public String execute(){
return "success";
}
}
7.创建layout.jsp,注意存放路径要和tiles.xml一致
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<html>
<head>
<title>Tiles演示</title>
</head>
<body>
<table>
<tr>
<td>
<tiles:insertAttribute name="header"></tiles:insertAttribute>
</td>
</tr>
<tr>
<td>
<tiles:insertAttribute name="sidebar"></tiles:insertAttribute>
</td>
</tr>
<tr>
<td>
<tiles:insertAttribute name="contant"></tiles:insertAttribute>
</td>
</tr>
<tr>
<td>
<tiles:insertAttribute name="footer"></tiles:insertAttribute>
</td>
</tr>
</table>
</body>
</html>
8.创建head.jsp,siderbar.jsp,contant.jsp,footer.jsp
9.测试,创建index.jsp
....
<form action="XXAction.do" method="post">
<input type="submit"/>
</form>
本文基于
http://tech.ddvip.com/2009-09/1252251869131168.html的修改的修改,谢谢他的分享。