知识大全 Tiles框架
Posted 知
篇首语:将相本无种,男儿当自强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Tiles框架相关的知识,希望对你有一定的参考价值。
教你如何精通Struts:Tiles框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Tiles框架特性和内容
Tiles框架为创建Web页面提供了一种模板机制 它能将网页的布局和内容分离 它允许先创建模板 然后在运行时动态地将内容插入到模板中 Tiles 框架建立在JSP的include指令的基础上 但它提供了比JSP的 include指令更强大的功能 Tiles框架具有如下特性
◆创建可重用的模板
◆动态构建和装载页面
◆定义可重用的Tiles组件
◆支持国际化
Tiles框架包含以下内容
◆Tiles标签库
◆Tiles组件的配置文件
◆TilesPlugIn插件
在开发Web站点时 常常要求同一站点的所有Web页面保持一致的外观 比如有相同的布局 页头 页尾和菜单
采用基本的JSP语句创建复合式网页
创建动态Web页面的最基本的办法是为每个页面创建独立的JSP文件 如果网页的相同部分发生需求变更 必须手工修改所有的JSP文件 可见 采用基本的JSP语句来编写上述网页 会导致JSP代码的大量冗余 增加开发与维护成本
采用JSP的include指令创建复合式网页
为了减少代码的冗余 可以把index jsp和product jsp中相同部分放在单独的JSP文件中 然后在index jsp和 product jsp文件中通过JSP include指令把其他JSP文件包含进来 这样提高了代码的可重用性 但是JSP include指令不能完全避免代码冗余 尽管这种方案减少了重复代码 但JSP文件的数量增加了 由原来的 个文件增加到 个文件 所以软件的复杂度也增加了
采用Tiles:Insert标签创建复合式网页
Tiles标签库的tiles:insert标签和JSP include指令具有相同的功能 也能把其他的JSP页面插入到当前页面中 用tiles:insert标签取代JSP include指令来创建复合式页面 代码仅有稍微的差别 两者的利弊也很相似 单纯使用tiles:insert标签来创建复合式页面 还没有充分发挥 Tiles框架的优势
以下两条语句的作用是相同的
< ?xml:namespace prefix = jsp />< jsp:include page= indexContent jsp >< /jsp:include>
< ?xml:namespace prefix = tiles />< tiles:insert page= indexContent jsp >< /tiles:insert>
采用Tiles模板创建复合式网页
尽管使用了tiles:insert标签 index jsp和product jsp文件还是存在很多的重复代码 为了提高Web页面的可重用性和可维护性 可以引入Tiles的模板机制 通俗的讲 Tiles模板是一种描述页面布局的JSP页面 Tiles模板仅仅定义Web页面的样式 而不指定内容 在Web应用运行时 才把特定内容插入到模板页面中 同一模板可以被多个Web页面共用 使用模板 可以轻松的实现Web应用的所有页面保持相同的外观和布局 无需为每个页面硬编码 在一个应用中 大多数页面使用同一模板 某些页面可能需要不同的外观 使用其他的模板 因此一个应用可能有一个以上模板
< %@ taglib uri= /WEB INF/struts tiles tld prefix= tiles %>
< tiles:insert attribute= sidebar >< /tiles:insert>
< tiles:insert attribute= header >< /tiles:insert>
< tiles:insert attribute= content >< /tiles:insert>
< tiles:insert attribute= footer >< /tiles:insert>
< %@ page contentType= text/; charset=UTF %>
< %@ taglib uri= /WEB INF/struts tiles tld prefix= tiles %>
< tiles:insert page= layout jsp flush= true >
< tiles:put value= sidebar jsp name= sidebar >< /tiles:put>
< tiles:put value= header jsp name= header >< /tiles:put>
< tiles:put value= indexContent jsp name= content >< /tiles:put>
< tiles:put value= footer jsp name= footer >< /tiles:put>
< /tiles:insert>
采用Tiles模板机制 大大提高了代码的可重用性和可维护性 模板中包含了网页共同的布局 如果布局发生变化 只需要修改模板文件 无需修改具体的网页文件 不过 从例程 和 可以看出 尽管 index jsp和product jsp文件的长度都缩短了 但是两者还是存在重复代码
Tiles组件的基本使用方法
为了最大程度的提高代码的可重用性和灵活性 Tiles框架引入了Tiles组件的概念 Tiles组件可以代表一个完整的网页 也可以代表网页的一部分 简单的Tiles组件可以组合成复杂的Tiles组件 或被扩展为复杂的Tiles组件
Tiles框架允许在专门的XML文件中配置Tiles组件 例如 以下代码定义了一个名为 index definition 的Tiles组件 它描述整个index jsp网页
< TILES DEFINITIONS>
< DEFINITION name= index definition path= /layout jsp >
< put value= sidebar jsp name= sidebar >< /put>
< put value= header jsp name= header >< /put>
< put value= indexContent jsp name= content >< /put>
< put value= footer jsp name= footer >< /put>
< /DEFINITION>
< /TILES DEFINITIONS>
definition元素的name属性指定Tiles组件的名字 path属性指定Tiles组件使用的模板 definition元素的put子元素用于向模板中插入具体的网页内容
例程 tiles defs xml
< ?xml version= encoding= ISO ?>
config_ _ dtd >
< TILES DEFINITIONS>
< DEFINITION name= index definition path= /layout jsp >
<:put value= sidebar jsp name= sidebar >< /put>
<:put value= header jsp name= header >< /put>
<:put value= indexContent jsp name= content >< /put>
<:put value= footer jsp name= footer >< /put>
< /DEFINITION>
< DEFINITION name= product definition path= /layout jsp >
< put value= sidebar jsp name= sidebar >< /put>
< put value= header jsp name= header >< /put>
< put value= productContent jsp name= content >< /put>
< put value= footer jsp name= footer >< /put>
< /DEFINITION>
< /TILES DEFINITIONS>
以上代码定义了两个Tiles组件 它们分别代表完整的index jsp和product jsp页面
( )在Strut配置文件中配置TilesPlugin插件 代码如下
< PLUG IN className= apache struts tiles TilesPlugin >
< SET PROPERTY value= /WEB INF/tiles defs xml property= definitions config />
< SET PROPERTY value= true property= definitions parser validate />
< /PLUG IN>
TilesPlugin插件用于加载Tiles组件的配置文件 在plug in元素中包含几个set property子元素 用于向TilesPlugin插件传入附加的参数
◆definitions config参数 指定Tiles组件的配置文件 如果有多个配置文件 则它们之间用逗号分隔
◆definitions parser validate参数 指定XML解析器是否验证Tiles配置文件 可选值包括true和false 默认值为true
( )在web xml文件中配置ActionServlet
为了保证在Web应用启动时加载TilesPlugin插件 应该加入ActionServlet控制器 ActionServlet控制器在初始化时能加载所有的插件 以下是在web xml文件中配置ActionServlet的代码
< SERVLET>
< SERVLET NAME>action< /SERVLET NAME>
< SERVLET CLASS> apache struts action ActionServlet< /SERVLET CLASS>
< INIT PARAM>
< PARAM NAME>config< /PARAM NAME>
< PARAM VALUE>/WEB INF/struts config xml< /PARAM VALUE>
< /INIT PARAM>
< LOAD ON STARTUP> < /LOAD ON STARTUP>
< /SERVLET>
< SERVLET MAPPING>
< SERVLET NAME>action< /SERVLET NAME>
< URL PATTERN>* do< /URL PATTERN>
< /SERVLET MAPPING>
( )在index jsp和product jsp中插入Tiles组件 参见例程 和例程
例程 index jsp
< %@ page contentType= text/; charset=UTF %>
< %@ taglib uri= /WEB INF/struts tiles tld prefix= tiles %>
< tiles:insert definition= index definition >< /tiles:insert>
例程 product jsp
< CCID_NOBR>
bordercolorlight = "black" bordercolordark = "#FFFFFF" align=center>
< CCID_CODE> < %@ page contentType="text/; charset=UTF-8" %>
< %@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
< tiles:insert definition="product-definition">< /tiles:insert>
通过Struts Action来调用Tiles组件
如果Tiles组件代表完整的网页,可以直接通过Struts Action来调用Tiles组件。tW.wInGWiT.Com例如,如果希望通过Struts Action来调用16.5.1节定义的名为"index-definition"的Tiles组件,可以在Struts配置文件中配置如下Action 映射:
< ACTION-MAPPINGS>
< ACTION path="/index" P <>
type=".apache.struts.actions.ForwardAction"
parameter="index-definition">
< /ACTION>
< /ACTION-MAPPINGS>
接下来通过浏览器访问 ,该请求先被转发到ForwardAction, ForwardAction再把请求转发给名为"index-definition"的Tiles组件,最后在浏览器端,用户将看到和index.jsp 相同的页面。
通过Struts Action来调用Tiles组件,可以充分发挥Struts框架负责流程控制的功能。此外,可以减少JSP文件的数目。例如,如果直接通过Struts Action来调用名为"index-definition"的Tiles组件,就不必再创建index.jsp文件。
解析Tiles组件的组合与扩展
Tiles 组件是一种可重用的组件。可以象搭积木一样,把简单的Tiles组件组装成复杂的Tiles组件,例如,可以把名为"index-definition" 的Tiles组件的左边部分拆分为独立的Tiles组件,名为"sidebar-definition"。
< DEFINITION name=index-definition path="/layout.jsp">
< put value="sidebar-definition" name=sidebar type=definition>< /put>
……
< /DEFINITION>
以上put子元素的value属性指定被包含的Tiles组件的名字,type属性设为"definition",表示value属性指定的是Tiles组件,而不是JSP文件。
< DEFINITION name=index-definition extends="base-definition">
cha138/Article/program/Java/ky/201311/28738相关参考
在你的struts配置文件strutsconfigxml中加入下面的配置 <plugin
知识大全 集成 Struts、Tiles 和 JavaServer Faces
集成Struts、Tiles和JavaServerFaces 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
一基本包(个) monsloggingjar monsfileuploadjar ognljar strutscorejar xworkjar freemarkerjar 二整合ti
StrutssTiles使用入门完全攻略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一说明
什么是钢筋混凝土框架桥框架桥从名字上你就可以看出,像一个框架一样。在力学上,单元之间的连线时刚性的我们有的时候也叫做地道桥主要用于铁路和公路立交用的。当然也有公路和公路之间的框架桥的U型槽是指什么路堑
Java学习---集合框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 集合框架概述集合框架是
三段三阶理论框架“三段三阶理论”框架中把一个不可预测的随机过程分为两部分:第一部分是趋势线。趋势线的走向和斜率是可以预测的,“三段三阶理论”框架提出了趋势线的预测方法。趋势线预测的准确度将是以后要研究
Spring框架概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SPRING框架——由来和发
网箱的框架是用来支撑箱体的骨架。网片依附于框架上,使网箱全部张开,悬浮于水体中,让养殖鱼类在箱体内自由地生长。如果没有充分让箱体张开,网体随水飘荡,忽而合起,忽而卷体,会使鱼儿活动受限,影响生长。使网
网箱的框架是用来支撑箱体的骨架。网片依附于框架上,使网箱全部张开,悬浮于水体中,让养殖鱼类在箱体内自由地生长。如果没有充分让箱体张开,网体随水飘荡,忽而合起,忽而卷体,会使鱼儿活动受限,影响生长。使网