- 在页面直接使用titles标签
先引入标签:<%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
将模板页面要代替的内容用标签占位:<tiles:insert attribute="content"></tiles:insert>
在另外一页面将模板页与内容页整合:
<tiles:insert page="usertemplate.jsp">
<tiles:put name="content" value="zczzh.jsp"></tiles:put>
</tiles:insert>
- 使用tiles框架
先插入框架的插件
<!-- 使用tiles框架则要将它的插件插入,当在页面用tiles标签时,则不必要加入些插件,
事实上直接使用tiles标签也蛮简单,只是多了一个页面
,但是它可以使用其它的自定义action,各人所好吧。
参数相注意,就这么写-->
<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>
定义tiles配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "tiles-config_1_1.dtd" >
<component-definitions>
<!--
可以配置一个模板页面,然后其它页面从它来继承,如下:
它的其中一个空位置并没有被填充
-->
<definition name="template" page="/template.jsp">
<put name="head" value="head.jsp" ></put>
<put name="foot" value="foot.jsp" ></put>
<put name="left" value="left.jsp" ></put>
</definition>
<!--
这个页面继承了模板页面,填充了它没有填充的地方。
当然如果模板页面已经填充,它可以覆盖。
-->
<definition name="register" extends="template">
<put name="content" value="content2.jsp"></put>
</definition>
</component-definitions>
在struts的action中调用
<!-- 使用tiles,则自定义的action必须继承ForwardAction,其它跟别的自定义action一样,不过
它的parameter属性用来指定tiles配置文件中definition标签的name,当两者相同时如果execute方法返回值为null,
则页面转向parameter指定的组合页面。否则到相应的页面,蛮有用的 -->
<action path="/testtiles" type="edu.yzu.action.MyTilesAction"
parameter="register">
<forward name="success" path="/index.jsp"></forward>
</action>