Struts中Tilts标记的使用
来源:互联网 发布:网络同步的网络云盘 编辑:程序博客网 时间:2024/05/02 01:57
struts中有很多好用的标记,如logic,html,bean。。
不过有一个标记用得很少,struts-tiles.tld标记
Tiles框架特性和内容
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。Tiles框架建立在JSP的include指令的基础上,但它提供了比JSP的 include指令更强大的功能。Tiles框架具有如下特性:
·创建可重用的模板
·动态构建和装载页面
·定义可重用的Tiles组件
·支持国际化
Tiles框架包含以下内容:
·Tiles标签库
·Tiles组件的配置文件
·TilesPlugIn插件
采用Tiles:Insert标签创建复合式网页
Tiles标签库的tiles:insert标签和JSP include指令具有相同的功能,也能把其他的JSP页面插入到当前页面中。用tiles:insert标签取代JSP include指令来创建复合式页面,代码仅有稍微的差别,两者的利弊也很相似。单纯使用tiles:insert标签来创建复合式页面,还没有充分发挥Tiles框架的优势。
以下两条语句的作用是相同的:
<jsp:include page="test.jsp"/>
<tiles:insert page="test.jsp"/>
采用Tiles模板创建复合式网页
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://struts.apache.org/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="lanzhengwu.mainlayout" path="/jsp/templete.jsp">
<put name="title" value="WEB企业人事管理系统"></put>
<put name="header" value="/jsp/head.jsp"></put>
<put name="left" value="/jsp/left.jsp"></put>
<put name="main" value="/jsp/main.jsp"></put>
<put name="footer" value="/jsp/tail.html"></put>
</definition>
<definition name="lanzhengwu.indexlayout" extends="lanzhengwu.mainlayout">
<put name="title" value="WEB企业人事管理系统"></put>
<put name="main" value="/jsp/main.jsp"></put>
</definition>
<definition name="lanzhengwu.allreslayout" extends="lanzhengwu.mainlayout">
<put name="title" value="WEB企业人事管理系统>>所有资源"></put>
<put name="main" value="/jsp/allresinfo.jsp"></put>
</definition>
<definition name="lanzhengwu.respublayout" extends="lanzhengwu.mainlayout">
<put name="title" value="WEB企业人事管理系统>>资源发布"></put>
<put name="main" value="/jsp/respub.jsp"></put>
</definition>
<definition name="lanzhengwu.resourceinfolayout" extends="lanzhengwu.mainlayout">
<put name="title" value="WEB企业人事管理系统>>资源信息"></put>
<put name="main" value="/jsp/resourceinfo.jsp"></put>
</definition>
</tiles-definitions>
definition元素的name属性指定Tiles组件的名字,组件的name属性是唯一的,extends属性为继承指定的模版,如java类的继承,子类拥有父类的所有属性,如上面的lanzhengwu.indexlayout就会拥有lanzhengwu.mainlayout的样式,他也有像JAVA类中的重写方法,重写的话就会覆盖父类,
,path属性指定Tiles组件使用的模板,definition元素的put子元素用于向模板中插入具体的网页内容。
用path指定一个模版页面:
------------------------------------------------------------------------------------------
<%@ page contentType="text/html;charset=gbk"%>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title><tiles:getAsString name="title"/></title>/**//*从XML页面取得定义的标题*/
</head>
<tiles:insert attribute="header"></tiles:insert>/**//*从XML页面取得定义的头文件*/
<body>
<table align=center>
<tr>
<th align="left" valign="top"><tiles:insert attribute="left"></tiles:insert></th>
/** *//*********/*从XML页面取得定义的左页面*/** *//****/
<th align="center" valign="top"><tiles:insert attribute="main"></tiles:insert></th>
/** *//*****************************/*从XML页面取得定义的主页面*/** *//********/
</tr>
</table>
</body>
</html>
<tiles:insert attribute="footer"></tiles:insert>
/** *//*******************/*从XML页面取得定义的尾页面*/** *//***********/
------------------------------------------------------------------------
(3)在Strut配置文件中配置TilesPlugin插件,代码如下:
<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" />
<!--
·definitions-config参数:指定Tiles组件的配置文件,如果有多个配置文件,则它们之间用逗号分隔。
·definitions-parser-validate参数:指定XML解析器是否验证Tiles配置文件,可选值包括true和false,默认值为true。
-->
</plug-in>
-------------------------------------------------------------------
像上面那样的用的<tiles:insert attribute="left"></tiles:insert>来导入页面,在XML中定义
模版的话,就可以直接导入模版来作为一个页面,如下面这样:
<tiles:insert definition="lanzhengwu.allreslayout"></tiles:insert>
就会以‘/jsp/allresinfo.jsp‘替换主页面,用"WEB企业人事管理系统>>所有资源"来替换标题.
如下面这个页面:
-------------------------------------------------------------------
<%@ page contentType="text/html;charset=gbk"%>
<%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<%String act=request.getParameter("act");
if("res".equals(act))...{
%>
<tiles:insert definition="lanzhengwu.allreslayout"></tiles:insert>
<%}else if("respub".equals(act))...{ %>
<tiles:insert definition="lanzhengwu.respublayout"></tiles:insert>
<%} %>
</html>
- Struts中Tilts标记的使用
- Struts中logic:iterate标记的使用
- struts中使用form标记
- struts在页面中使用form标记的注意事项
- struts logic 的标记
- [原创]使用struts中的标记
- Struts标记库使用帮助
- struts html标记 的看法
- struts的bean标记库
- struts的bean标记库
- JSP中自定义标记符的使用
- JSP中自定义标记符的使用
- javadoc中文档注释标记的使用
- iOS 中UUID唯一标记的使用
- java中break标记的使用
- java中continue标记的使用
- java中continue标记的使用
- web.xml中配置struts标记库
- 关于递归的一些分析
- 地址传送指令LEA,LDS,LES;
- J2me xmlReader的轻量级实现
- 2007最牛的50个站
- 四六级是这样的
- Struts中Tilts标记的使用
- D2D网络数据存储器开发全过程(2)
- SQL Server 2008和T-SQL新功能
- 汇编乐曲编程
- SQL Server中的新数据类型:HierarchyId
- 红黑树的实现和代码
- SQL Server 2008中的数据类型
- kxmlParser-xml解析工具的使用
- 网站终于开通了