struts2.0 整合tiles 配置

DGenerationX 2010-05-11

1.在WEB-INF/lib下加入所需的jar包

    commons-digester-1.6.jar,

    tiles-core-2.0-20070207.130156-4.jar,

tiles-api-2.0-20070207.130156-4.jar,

struts2-tiles-plugin-2.0.6.jar,

struts2-core-2.0.6.jar

xwork-2.0.1.jar,

2.以下内容添加到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>

<listener>

<listener-class>

org.apache.struts2.tiles.StrutsTilesListener

</listener-class>

</listener>

3.在WEB-INF下添加和tiles.tld和tiles.xml文件,其中tiles.tld内容为tiles-core-2.0-20070207.130156-4.jar包中META_INF/tiles-core.tld的内容。

tiles.xml内容:

<?xmlversion="1.0"encoding="GB2312"?>

<!DOCTYPEtiles-definitionsPUBLIC

"-//ApacheSoftwareFoundation//DTDTilesConfiguration2.0//EN"

"http://jakarta.apache.org/struts/dtds/tiles-config.dtd">

<tiles-definitions>

<definitionname="myapp.homepage"template="layout.jsp">

<putname="title"value="Tilestutorialhomepage"/>

<putname="header"value="/tiles/header.jsp"/>

<putname="menu"value="/tiles/menu.jsp"/>

<putname="body"value="/tiles/cBody.jsp"/>

<putname="footer"value="/tiles/footer.jsp"/>

</definition>

</tiles-definitions>

4.struts.xml为:

<!DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<packagename="default"extends="tiles-default">

<actionname="go"class="com.action.MyAction">

<!--resultname="success">/next.jsp</result-->

<resultname="success"type="tiles">myapp.homepage</result>

</action>

</package>

</struts>

红色部分根据自己项目定。注意extends="tiles-default"

5创建layout.jsp:

<%@pagecontentType="text/html;charset=UTF-8"%>

<%@tagliburi="WEB-INF/tiles.tld"prefix="tiles"%>

<html>

<head>

<title></title>

</head>

<body>

<tablewidth="768px"height="800px"border="2"align="center">

<tr>

<tdcolspan="2"align="center"valign="top"width="768px"height="100px"bgcolor="#80ff80">

<tiles:insertAttributename="header"/>

</td>

</tr>

<tr>

<tdalign="center"width="150px"height="800px"bgcolor="#00ff00">

<tiles:insertAttributename="menu"/>

</td>

<tdalign="right"width="618px"height="800px"bgcolor="#ff80c0">

<tiles:insertAttributename="body"/>

</td>

</tr>

<tr>

<tdcolspan="2"bgcolor="#00ff40"height="100px">

<tiles:insertAttributename="footer"/>

</td>

</tr>

</table>

</body>

</html>

6.根据

<putname="title"value="Tilestutorialhomepage"/>

<putname="header"value="/tiles/header.jsp"/>

<putname="menu"value="/tiles/menu.jsp"/>

<putname="body"value="/tiles/cBody.jsp"/>

<putname="footer"value="/tiles/footer.jsp"/>

在WebRoot下创建tiles目录和相应jsp文件

另:tiles的展现有点可以让你用更少的代码做更多的事情,也会让你的UI布局管理更轻松;不久之前谈过如何使用struts2,今天谈谈如何将 tiles与struts2集成:

1、安装安装共有两步: a、tiles的安装:将tiles根目录以及根目录下lib子目录中的jar文件放到WEB- INF/lib目录下。 b、struts-tiles-plugin安装:将struts2-tiles-plugin jar文件考本到WEB-INF/ 目录下。

2、web.xml的配置一个配置示例胜过千言万语:

<listener>

 <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> </listener>

<context-param>

<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name> <param-value>/WEB-INF/config/tiles/tiles-defs.xml</param-value>

</context-param>

3、action的配置使用tiles作为resulttype的action必须扩展tiles-default包或者定义tiles 的resulttype

a、扩展tiles-default的配置:

<package name="index-pkg" extends="struts-default,tiles-default" namespace="/">

 <action name="index" class="org.tibetjungle.rips.action.IndexAction" method="index">

 <result name="success" type="tiles">mainLayout</result>

</action> </package>

 b、在配置文件中自定义:

<result-types> <

result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>

</result-types> 定义后,使用方式同a。 tiles的配置很简单,具体配置问题请参考官方文档。

相关推荐