tiles配置及标签使用

创建布局文件
Jsp代码   收藏代码
  1. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>  
  2.   
  3.   
  4.       
  5.         <tiles:getAsString name=<span class="string" style="color:#0000FF;">"title"</span> />  
  6.       
  7.   
  8.       
  9.         "0" width="100%" cellspacing="5">  
  10.               
  11.                 "2">"header" />  
  12.               
  13.               
  14.                 "140" valign="top">'menu' />  
  15.                 "top" align="left">'body' />  
  16.               
  17.               
  18.                 "2">
      
  19.               
  20.               
  21.                 "2">"footer" />  
  22.               
  23.           
  24.       
  25.   

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

标签内主要的子节点就是标签,这个标签属性如下:

 

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

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

template false true java.lang.String

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

role false true java.lang.String

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

extends false true java.lang.String

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

preparer false true java.lang.String

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

 


你可能感兴趣的:(web开发)