Tiles框架如何使用介绍

    1.添加jar包,struts已经集成 

  2.配置struts-config中的plus-in属性

  3.配置web.xml中的taglib属性,将tiles标签配进去

   4.写Tiles的配置文件tiles-def.xml

  5.根据tiles-def.xml写布局,布局其实就是一个.jsp,只不过包含了tiles:insert

  6.写页面

  7.不同的跳转方式:

  1)增加新页面(每个页面需要写两个JSP,一个调用页面,一个框架中的页面)

  2)用action的paremeter属性。

  二、使用Tiles框架需要注意的地方:

  1.plus-in属性中的definitions-config属性指定Tiles配置文件,可以指定多个

  2.Tiles配置文件中的组合关系

 

<definition name="base-definition" path="/layout.jsp"> 
    <put name="sidebar" value="sidebar.jsp"/> 
    <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"/> 
 </definition>

 

  这样一来,每次增加一个新的类似indexContent的页面时,只需要配置一个新的继承自base-definition的definition就OK了

  3.主调页面和布局中的内容页面是不同的概念。主调页面只需要有这么几句话就OK

 

<%@ page contentType="text/html; charset=gb2312" %> 
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" divfix="tiles"%> 
<tiles:insert definition="index-definition"/>

 

  其中definition属性指定需要用到Tiles中的哪个配置

  而内容页面就完全可以不考虑模板的问题,直接该怎么写,就怎么写。

  4.两种不同的使用方式还没弄明白。不过Tiles确实很好用。

  三、Tiles的优缺点:

  说实话,跟使用框架结构比起来,还是比较麻烦的,而且会增加JSP的数量。但是和现在用的Frame框架比较,是比较安全的。现在用的Frame框架如果在地址栏里直接输入一个url,就会导致框架不复存在。这样是很危险的。而Tiles恰好弥补了这方面的不足。

二)


1. 1.Tiles框架包含以下内容:Tiles标签库、Tiles组件的配置文件、TilesPlugIn插件

2. 2. 在JSP页面中<tiles:insert>标签和JSP include指令具有相同功能:

<jsp:include page=”indexContent.jsp”>

<tiles:insert page=”indexContent.jsp” flush=”true”> 作用是相同的 true表示在插入操作之前,先调用当前页面的输入流的flush()方法。

3. 3. 使用tiles标签库:

1) 1). 类包:struts.jar、commons-digester.jar、commons-beanutils.jar、commons-collections.jar、commons-logging.jar。

2) 2).加入struts-tiles.tld文件。 在web文件中配置<tablib>元素如:

<taglib>

<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>

<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>

</taglib>

3) 3).在专门的XML文件中配置Ttile组件(如:tiles-defs.xml),这个文件位于WEB-INF目录下。

<definition name=”common” path=”/WEB-INF/pages/template.jsp”>

<put name=”menuTitle” value=”${menuTitle}” />

<put name=”workflow” value=”${workflow}” />

<put name=”header” value=”header.jsp” />

<put name=”breadcrumbs” value=”breadcrumbs.jsp” />

<put name=”graphics” value=”${graphics}” />

</definition>

<definition name=”net.tiles.yun” extends=”common”>

<put name=”menuTitle” value=”yunchat welcome you here” />

<put name=”graphics” value=”yun graphics” />

<put name=”message” value=”tiles.msg.001″ />

<put name=”workflow” value=”tt workflow” />

<put name=”breadcrumbs” value=”breadcrumbs.jsp” />

<put name=”header” value=”header.jsp” />

</definition>

4) 4).在Struts配置文件中配置TilesPlugin插件

<plug-in className=”org.apache.struts.tiles.TilesPlugin”>

<!– Path to XML definition file –>

<set-property property=”definitions-config” value=”/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-defs-yun.xml” />

<!– Set Module-awareness to true –>

<set-property property=”moduleAware” value=”true” />

<set-property property=”definition-paser-validate”

value=”true” />

</plug-in>

definition-paser-validate参数:指定XML解析器是否验证Tiles配置文件。默认true;

5) 5).在web.xml文件中配置ActionServlet

为保证Web应用启动时加载TilesPlugin插件,应加入ActionServlet控制器,ActionServlet控制器在初始化时能加载所有的插件。

6) 6). 在JSP文件中插入Tiles组件,使用Tiles的组件属性。

4. 4. 在struts action中可以直接调用Tiles组件。

<action-mappings>

<action path=”/tiles_action” scope=”requests”

type=”TilesAction” validate=”true”>

<forward name=”success” path=”net.tiles.yun”

redirect=”false” />

</action>

<action path=”/tiles_action2”  type=”TilesAction” parameter=”net.tiles.yun”>

</action>

</action-mappings>

5. 5.Tiles组件的组合:

<definition name=”common” path=”/WEB-INF/pages/template.jsp”>

<put name=”menuTitle” value=”tiles-definition” type=”definition” />

……

</definition>

<put>子元素的value属性指定被包含的Tiles组件的名字。Type属性设置为”definition”,表示value属性指定的是Tiles组件,而不是JSP文件。

6. 6. Tiles组件的扩展:

<definition name=”common” extends=”base-definition”>

extends属性指定被扩展的父类Tiles组件。

7. 7.Tiles在JSP页面的使用:

(1)插入到JSP页面中:

<tiles:insert page=”/layouts/commonLayout.jsp” flush=”true” />

(2)插入一个Tiles同时传递属性值:

<tiles:insert attribute=”header”>

<tiles:put name=”menuTitle” beanName=”menuTitle”/>

<tiles:put name=”graphics” beanName=”graphics”/>

</tiles:insert>

<tiles:insert attribute=”breadcrumbs”>

<tiles:put name=”workflow” beanName=”workflow” />

<tiles:put name=”message” beanName=”message” />

<tiles:put name=”graphics” beanName=”graphics” />

</tiles:insert>

(3)作为String来得到一个属性

<tiles:getAsString name=” title “>

(4)通过引用属性来插入Tiles

<tiles:insert attribute=”header”>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值