`
mengyang
  • 浏览: 266104 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

tiles使用总结

阅读更多
  最近学习了下Tiles,准备应用到实际项目中,由于还使用了Spring MVC,所以需要把Tiles集成到Spring MVC中。
  Tiles是的版本是2.2.2,Spring版本是3.1.0M2.
  步骤挺简单
[list]
  • 创建布局文件
  • <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
    
    <HTML>
    	<HEAD>
    		<title><tiles:getAsString name="title" /></title>
    	</HEAD>
    
    	<body>
    		<table border="0" width="100%" cellspacing="5">
    			<tr>
    				<td colspan="2"><tiles:insertAttribute name="header" /></td>
    			</tr>
    			<tr>
    				<td width="140" valign="top"><tiles:insertAttribute name='menu' /></td>
    				<td valign="top" align="left"><tiles:insertAttribute name='body' /></td>
    			</tr>
    			<tr>
    				<td colspan="2"><hr></td>
    			</tr>
    			<tr>
    				<td colspan="2"><tiles:insertAttribute name="footer" /></td>
    			</tr>
    		</table>
    	</body>
    </html>
    

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

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

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

    注意到现在控制器返回的逻辑视图名对应的是一个tiles定义文件中的定义名,这样tiles的视图解析器就会为你正确的渲染视图。
    [/list]
       可以看到使用Tiles还是很简单的,自从Tiles2.1后就开始支持通配,通过约定命名规范,就可以节省许多定义文件的配置。  
       以前也使用过Sitemesh,现在再大概比较下它们:
       1. sitemesh最令人诟病的一点可能就是它的性能问题,由于使用了装饰器模式,要去解析html代码,会产生好多垃圾对象,所以会频繁的引起GC,CPU的负担会加大。而Tiles基本上没有这样的问题。Sitemesh的测试见:http://www.iteye.com/topic/715100
       2. 有人说tiles的配置比较繁琐,通过上面的例子我们可以看见自从Tiles引入通配后,配置简单了很多。使用Sitemesh也至少需要两个文件,一个布局文件,一个装饰器映射文件,在映射中也需要配置匹配的URL路径,实际上比Tiles简单不了多少。
       3. 在JSP页面的编写上,使用Sitemesh非常舒服,完全是无倾入的,开发人员根本不知道是否用了sitemesh。而使用Tiles的开发人员要注意由于<HTML>这样的标签都定义在了布局jsp中,所以每个tile页面是不能包含它们的。
       4. 动态内容的编辑,比如每个页面的title,sitemesh提供了<decorator:title />用来很方便的为你插入title内容。而sitemesh则必须单独定义在定义文件中,或者使用通配从controller返回的视图名中解析出来,感觉相当不好。
      5. Tiles的功能更强大一些,比如可以直接在servlet中渲染视图,在运行时改变定义之类的,而且有更好的个性化扩展性,相对来说siteme就没那么多功能了(虽说我觉得那些功能实际上都没什么用)。不过也可以认为Tiles的学习难度会比sitemesh高一些。
       总的来说,Tiles和Sitemesh都是非常好的布局框架,具体选择哪一个应该根据项目来定。如果对性能要求比较高的话,还是选择Tiles稳妥些,或者可以等到Sitemesh3成熟以后。
    4
    0
    分享到:
    评论
    1 楼 超级无敌唐僧 2014-04-10  
    能给个源码不???????????????

    相关推荐

      tiles2.1.2前端框架

      总结来说,Tiles2.1.2是一个强大的前端框架,它通过组件化和模板化的理念简化了Web页面的构建过程,提高了代码的可重用性和可维护性。对于大型、复杂的企业级应用,尤其是那些需要统一界面风格和多语言支持的管理类...

      在struts中的tiles模板使用的jar包

      Struts是一个广泛应用于Java ...总结起来,使用Struts中的Tiles模板需要一系列的jar包支持,这些库协同工作,提供了强大的页面布局和组合能力。通过合理配置和使用,开发者可以构建出结构清晰、易于维护的Web应用界面。

      Struts2中使用Tiles组件

      总结一下,使用Struts2中的Tiles组件,我们可以: 1. 创建页面模板,实现布局复用。 2. 定义页面内容,通过组合模板和内容,构建复杂的用户界面。 3. 在Action中通过返回Tiles定义的名称来控制渲染的页面。 4. 简化...

      Tiles的使用 - 遗补和总结-.docx

      【Tiles的使用 - 遗补和总结】 Tiles是一个强大的视图组合框架,常用于Java Web应用中,尤其是与Struts框架结合使用,能够帮助开发者更有效地管理界面布局和组件。Tiles的核心功能在于将多个独立的JSP页面(或者...

      Tiles的使用 - 遗补和总结-.pdf

      【Tiles的使用 - 遗补和总结】 Tiles框架是Apache Struts的一部分,它提供了一种组织和管理Web应用界面的方式。Tiles允许开发者定义页面布局(称为“tiles”),然后在多个页面中重用这些布局,实现组件化的页面...

      spring tiles

      - **Tiles组件的配置文件**:通常使用XML格式来定义Tiles组件及其属性,例如`tiles-def.xml`文件。 - **TilesPlugIn插件**:负责处理Tiles组件的解析和渲染工作。 #### 四、Tiles框架的基本使用示例 下面是一个...

      apache_tiles2.2---文档读后总结

      Spring 框架提供了与 Tiles 的深度集成,允许开发者在 Spring 应用程序中无缝使用 Tiles,从而实现更加灵活和模块化的Web开发流程。 Apache Tiles 2.2 通过其强大的功能和灵活性,为Web开发者提供了一个高效、可...

      struts中tiles标签简介

      在Web开发领域,尤其在使用Struts框架时,为了提高代码复用性及页面布局的灵活性,开发者经常使用到一个非常有用的工具——Tiles框架。Tiles框架允许我们通过组合可复用的组件来构建网页。这种组件化的思想不仅使得...

      tiles+struts2

      总结来说,将Tiles与Struts2结合使用,可以极大地提高开发效率和代码可维护性。通过清晰地划分页面组件和定义布局模板,我们可以更方便地管理Web应用的视图层。这种模式尤其适用于那些需要频繁调整和扩展页面结构的...

      tiles+servlet简单例子

      【标题】"tiles+servlet简单例子"涉及到的技术是Tiles框架与Servlet的结合使用。Tiles全称为Tiles2,是Apache Struts项目的一部分,但它也可以独立于Struts使用。这个例子展示了如何在不依赖Struts的情况下,利用...

      Struts2 tiles操作例子

      在探讨“Struts2 tiles操作例子”这一主题时,我们首先需要理解Struts2框架以及tiles插件在其中扮演的角色...对于任何想要提升Web应用开发效率的开发者来说,掌握Struts2 tiles插件的使用方法都是必不可少的技能之一。

      tiles框架包

      总结来说,"tiles框架包"提供了使用Spring框架和Tiles框架集成开发Web应用的基础。通过Spring的控制反转和面向切面编程,配合Tiles的视图组合能力,可以构建出结构清晰、易于维护的Web项目。这个压缩包中的tiles-...

      struts2.0 整合tiles 配置

      这里的关键在于`extends="tiles-default"`,这使得包继承了Tiles默认的配置,从而可以使用Tiles结果类型。 #### 六、创建布局模板 最后一步是创建具体的布局模板文件,比如`layout.jsp`: ```jsp ;charset=UTF-8" ...

      SpringMVC4整合tiles3

      SpringMVC4与Tiles3整合教程 在Java Web开发中,SpringMVC作为一个强大的MVC框架,被广泛用于构建后端逻辑,而Tiles3则是一个视图层框架,主要...通过以上步骤,你可以在你的SpringMVC4项目中成功地集成和使用Tiles3。

      tiles2.0.6官方jar包

      总结来说,Tiles 2.0.6官方jar包是一个强大的页面布局工具,它通过将网页拆分成可重用的部分,简化了Web开发过程,提高了代码的可维护性和复用性。对于Java Web开发者而言,理解和掌握Tiles框架能有效提升工作效率,...

      Struts-2.1.6整合Tiles2全攻略

      **注意**:在某些老版本(如2.0)的配置中,监听器类可能为`org.apache.struts2.tiles.web.startup.TilesListener`,而2.1版本中使用的是`org.apache.struts2.tiles.StrutsTilesListener`,这是2.0版本监听器类的一...

      struts2集成tiles2.myeclipse10教程

      总结一下,集成Struts2和Tiles2的关键步骤包括:引入依赖库、配置Struts2和Tiles2的配置文件、定义页面布局和组件、在Action中返回Tiles定义名。通过这种方式,开发者可以更好地组织和管理Web应用的视图部分,同时...

      tiles-3.0.8-all

      "tiles-3.0.8-all" 是一个与Apache...总结来说,Apache Tiles 3.0.8是一个强大的Web应用布局框架,有助于简化页面设计和提高代码的可维护性。通过理解其核心概念和特性,开发者能够构建出更加灵活且易于管理的Web界面。

      springmvc 集成 tiles2实现页面模板局部刷新

      总结来说,Spring MVC和Tiles2的集成提供了强大的页面模板管理和局部刷新能力,同时通过高度自适应的设计,使得应用能够适应各种浏览环境。这个过程涉及到前端和后端的协同工作,包括视图解析、模板定义、AJAX请求...

      tiles框架增加一个页面的步骤

      通过本篇文章,我们将详细探讨如何使用Tiles框架增加一个新的页面,并确保其能够融入到现有网站的整体设计之中。 #### 二、什么是Tiles框架 Tiles框架本质上是一种模板系统,它允许开发者创建具有统一风格和外观的...

    Global site tag (gtag.js) - Google Analytics