tiles配置及标签使用

  • 创建布局文件
    Jsp代码   收藏代码
    1. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>  
    2.   
    3. <HTML>  
    4.     <HEAD>  
    5.         <title><tiles:getAsString name="title" /></title>  
    6.     </HEAD>  
    7.   
    8.     <body>  
    9.         <table border="0" width="100%" cellspacing="5">  
    10.             <tr>  
    11.                 <td colspan="2"><tiles:insertAttribute name="header" /></td>  
    12.             </tr>  
    13.             <tr>  
    14.                 <td width="140" valign="top"><tiles:insertAttribute name='menu' /></td>  
    15.                 <td valign="top" align="left"><tiles:insertAttribute name='body' /></td>  
    16.             </tr>  
    17.             <tr>  
    18.                 <td colspan="2"><hr></td>  
    19.             </tr>  
    20.             <tr>  
    21.                 <td colspan="2"><tiles:insertAttribute name="footer" /></td>  
    22.             </tr>  
    23.         </table>  
    24.     </body>  
    25. </html>  

    布局文件用来规范了整个页面的布局,包括页面上的哪一块应该放入哪个内容,但是具体的内容没有在这个页面上体现出来,所以还需要一个用来指定每块内容的定义文件。
  • 创建定义文件
    Xml代码   收藏代码
    1. <?xml version="1.0" encoding="ISO-8859-1" ?>  
    2. <!DOCTYPE tiles-definitions PUBLIC  
    3.        "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"  
    4.        "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">  
    5.   
    6. <tiles-definitions>  
    7.   
    8.   <definition name=".mainLayout" template="/WEB-INF/views/test/common/layout.jsp">  
    9.       <put-attribute name="title"  value="Tiles Library Documentation" />  
    10.       <put-attribute name="header" value="/WEB-INF/views/test/common/header.jsp" />  
    11.       <put-attribute name="menu"   value="/WEB-INF/views/test/common/menu.jsp" />  
    12.       <put-attribute name="footer" value="/WEB-INF/views/test/common/footer.jsp" />  
    13.   </definition>  
    14.   
    15.   <definition name=".test.*.*" extends=".mainLayout" preparer="com.fsti.test.controller.TestViewPrepare">  
    16.     <put-attribute name="body" value="/WEB-INF/views/test/{1}/{2}.jsp" />  
    17.   </definition>  
    18.   
    19. </tiles-definitions>  

    定义文件指定了布局文件中每块应该由什么具体内容来填充。注意我们这里使用了通配。
  • 在Spring中配置TilesConfigurer和Tiles的视图解析器
    Xml代码   收藏代码
    1. <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">  
    2.     <beans:property name="definitions">  
    3.         <beans:list>  
    4.             <beans:value>/WEB-INF/tiles-defs.xml</beans:value>  
    5.         </beans:list>  
    6.     </beans:property>  
    7. </beans:bean>  
    8.   
    9. <beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">  
    10.     <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />  
    11. </beans:bean>  
    12.   
    13. <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    14.     <beans:property name="prefix" value="/WEB-INF/views/" />  
    15.     <beans:property name="suffix" value=".jsp" />  
    16. </beans:bean>  

    注意这里还有个JSP用的视图解析器,用来处理不需要被Tiles渲染的视图。
  • Controller中返回逻辑视图名
    Java代码   收藏代码
    1. @RequestMapping("/view")  
    2. public String view(){  
    3.     return ".test.product.product_view";  
    4. }  

    注意到现在控制器返回的逻辑视图名对应的是一个tiles定义文件中的定义名,这样tiles的视图解析器就会为你正确的渲染视图。 
    [/list] 
       可以看到使用Tiles还是很简单的,自从Tiles2.1后就开始支持通配,通过约定命名规范,就可以节省许多定义文件的配置。   

    <tiles-definitions>标签内主要的子节点就是<definition>标签,这个标签属性如下:

     

    属性
    名称是否必须值必须值类型说明
    nametruetruejava.lang.String

    指定将要创建的一个definition bean的访问名称。这个必须有的。

    templatefalsetruejava.lang.String

    哪一个文件是模板文件,这个模板文件后面会介绍。

    rolefalsetruejava.lang.String

    如果配置了这个值的话,需要role的值相等,这个definition才被有效访问,这个功能我没有深究,也不推荐使用,建议大家建立自己更完善的权限控制管理。当然欢迎朋友们完善role应用的示例,tiles自带role的示例,有兴趣的人去读一下就明白了。

    extendsfalsetruejava.lang.String

    继承哪一个definition,值是你要继承的definition的name的值。高使用率的属性。

    preparerfalsetruejava.lang.String

    呵,我没使用,如果你要使用的话,要写一个实现他的Prepare接口的类,作用就是在展现你定义的页面前会先执行你的prepare。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值