Tiles标签库
Tiles标签的<tiles:insert>标签和jsp include 指令具有相同的功能。
<tiles:insert page="indexContent.jsp" flush="true"/>
flush为true,表示执行插入之前,先调用当前页面的输出流的flush()方法;
使用tiles标签的步骤
(1)安装tiles标签库需要的文件:
WEB-INF/lib中包含:struts.jar ;commons-digester.jar commons-beanutils.jar commons-collections.jar commons-logging.jar
(2) web.xml
<taglib>
<taglib-uri></taglib-uri>
<taglib-location></taglib-location>
</taglib>
(3)创建页面,<%@ taglib uri=“” prefix="">引入标签库;
确定,框架代码仍然重复很多;
采用 tiles模板
使用tiles模板的步骤
(1)安装tiles标签所需要的文件
(2)在web。xml中配置<taglib>
(3)定义模板文件
在需要变换的地方,即动态加载的部分,使用<tiles:insert attribute="***"/>
attribute属性指定了 待插入内容的逻辑名,而没有指定真正被插入的文件;
(4)在动态加载的页面中运用tiles模板
<tiles:insert page="layout.jsp" flush="true">
<tiles:put name="sidebar" value=""/> <!--name对应上步中的attribute-->
<tiles:put name="header" value=""/>
<tiles:put name="content" value="**.jsp"/><!--这里为动态加载的部分,不同的页面就不同;-->
<tiles:put name="footer" value=""/>
</tiles:insert>
不同的页面中除content变换,其他都不变,仍然可以再简化;
Tiles组件
Tiles组件可以代表一个完整的网页,也可以代表网页的一部分。
简单的tiles组件可以组合成复杂的tiles组件,或被扩展为复杂的tiles组件;
使用方法
tiles框架在专门的xml文件中配置tiles组件。
例如:
<tiles-definitions>
<definition name="index-definition" path="/layout.jsp">
<!--name属性指定了tiles组件名字; path为模板-->
<put name="sidebar" value="sidebar.jsp"/>
<put name="header" value="header.jsp"/>
<put name="content" value="indexContent.jsp"/>
<put name="footer" value="footer.jsp"/>
</definition>
</tiles-definitions>
步骤
(1)安装tiles标签库所需的文件;
(2)web.xml文件中配置<taglib〉元素;
(3)在专门的xml中配置tiles组件,设文件名为tiles-defs.xml; 放置在WEB-INF目录下;
(4)在struts-config.xml文件中配置 tiles-plugin插件;
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/><!-如果有多个,用,号分割-->
<set-property property="definitions-parser-validate" value="true"/>
</plug-in>
(5)web.xml中配置actionservlet;
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-name>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
(6)在index.Jsp中插入tiles组件
如<tiles:insert definition="index-definition"/>
如果tiles里面的某个definition代表一个完整的网页,那么可以在struts-config.xml中直接映射;
例如
<action-mappings>
<action path="/index" type="org.apache.struts.actions.ForwardAction" parameter="index=definition"/>
</action-mappings>
tiles组件的组合;
<tiles-definitions>
<definition name="sidebar-definition" path="/sidebar-layout.jsp">
<put name="top" value="flags.jsp"/>
<put name="bottom" value="sidebar-links.jsp"/>
</definition>
<definition name="index-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar-definition" type="definition"/>
<put name="header" value="header.jsp"/>
<put name="content" value="indexContent.jsp"/><!--页面1-->
<put name="footer" value="footer.jsp"/>
......
</definition>
<definition name="product-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar-definition" type="definition"/>
<put name="header" value="header.jsp"/>
<put name="content" value="productContent.jsp"/><!--页面2-->
<put name="footer" value="footer.jsp"/>
......
</definition>
......
</tiles-definitions>
tiles组件的扩展:
先定义一个包含公共内容的base-definition组件,然后再让动态加载的页面的tiles组件继承这个父类;
<tiles-definitions>
<definition name="sidebar-definition" path="/siderbar-layout.jsp">
<put name="top" value="flags.jsp"/>
<put name="bottomf" value="sidebar-links.jsp"/>
</definition>
<definition name="base-definition" path="/layout.jsp">
<put name="sidebar" value="sidebar-definition" type="definition"/>
<put name="header" value="header.jsp"/>
<put name="content" value=""/>
<put name="footer" value="footer.jsp"/>
</definition>
<definition name="index-definition" extends="base-definition">
<put name="content" value="indexContent.jsp"/> <!--页面1-->
</definition>
<definition name="product-definition" extends="base-definition">
<put name="content" value="productContent.jsp"/><!--页面2-->
</definition>
</tiles-definitions>
siderbar-layout.jsp
<table>
<tr>
<tiles:insert attribute="top"/>
</tr>
<tr>
<tiles:insert attribute="bottom"/>
</tr>
</table>
layout.jsp
<html>
<head></head>
<body>
<table>
<tr>
<td> <tiles:insert attribute="siderbar"/></td>
<td>
<table>
<tr>
<td><tiles:insert attribute="header"/></td>
</tr>
<tr>
<td><tiles:insert attribute="content"/></td>
</tr>
<tr>
<td><tiles:insert attribute="footer"/></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
相关推荐
Struts2 tiles操作例子,附带demo代码
struts中tiles标签简介,Tiles框架可以令我们组合可以复用的Tiles来搭建网页。
struts-tiles.tld
struts-tiles-el.tld
用于struts技术开发应用的架包 struts-tiles.1.3.10.jar
struts中web网页布局框架struts-tiles,简单配置就可。
这个用途不大,送大家了........我不怎么喜欢
使用struts的Tiles插件功能 使用拉Tiles框架 进行struts页面结构调整
struts2 tiles2配置的例子
一个简单的应用Struts中tiles的例子
struts2.0 整合tiles 配置
Struts-2.1.6整合Tiles2全攻略
关于struts-tiles的例子,基础,简单,实用。
模板搭建源码可运行
做了一个struts2 tiles的实例,仿照网上的一个例子,调通过了,jar包完整,在eclipse下运行,如果要在myeclipse下运行,请更改相应组织结构
struts2 tiles的使用(小实例)
页面布局struts tiles,方便用户方便快速的进行页面布局
体验Struts2和tiles的神奇结合。