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

Apache Tiles 2.x 应用指南

 
阅读更多
Jakarta Tiles是一个用于在模板中对页面进行布局的框架。Tiles产生之初是Struts架构的一部分,后来Tiles独立出来常与Spring架构配合,本文描述了独立于其它架构而在原始WEB应用中使用Tiles的方法。

基本用法
设置Tiles元素 - 核心配置文件的书写方法
Tiles核心配置文件格式为xml,文档类型为tiles-definitions。要在每一个配置文件的开头加入下述说明:

<!DOCTYPE tiles-definitions PUBLIC 
  "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
  "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">


Tiles中的基本元素有三种:定义、模板和属性。Tiles核心配置文件(tiles-definitions)中的基本单元是“definition”。一个“definition”必须与一个“template” 相对应。“template”是一个URI、通常情况下指的是一个JSP页面。一个“definition”可以包含多个“attribute”,一个attribute可以是一个字符串、可以是一个定义的名字、也可以是一个模板。
可以使用定义描述一个带有名字的模板。下例定义了一个没有属性的模板:

<tiles-definitions>  
  <definition name="header" template="/fragments/header.jsp" />  
</tiles-definitions>  

模板可以包含一个或多个属性,属性可以是一个字符串,或者是一个定义的名字,或者是一个模板。下例定义了一个包含属性的模板:

<tiles-definitions>  
  <definition name="header" template="/fragments/header.jsp" />  
    
  <definition name="main" template="/index.jsp">  
    <put-attribute name="title" value="标题名" type="string"/>  
    <put-attribute name="header" value="header" type="definition"/>  
    <put-attribute name="footer" value="/fragments/footer.jsp" />  
  </definition>  
</tiles-definitions>  



定义可以被继承,继承之后的定义属性可以改变,模板不可以改变。下例定义了一个具有继承关系的模板:

<tiles-definitions>  
  <definition name="header" template="/fragments/header.jsp" />  
    
  <definition name="main" template="/index.jsp">  
    <put-attribute name="title" value="主画面" type="string"/>  
    <put-attribute name="header" value="header" type="definition"/>  
    <put-attribute name="footer" value="/fragments/footer.jsp" />  
  </definition>  
    
  <definition name="user" extends="main">  
    <put-attribute name="title" value="新建用户" />  
  </definition>   
</tiles-definitions> 




读取Tiles元素 - JSP页面上的处理方法
要想在JSP页面上使用Tiles标签,首先要引入标签库。

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  




在JSP页面上插入一个模板的基本标签是<tiles:insertTemplate />,如下例:

<tiles:insertTemplate template="/fragments/footer.jsp"/>  




如果插入的模板包含属性,则在插入模板的同时,必须使用<tiles:putAttribute />标签为其指定属性值:

引用
<tiles:insertTemplate template="/index.jsp"> 
  <tiles:putAttribute name="title" value="主画面"/> 
  <tiles:putAttribute name="header" value="header"/> 
  <tiles:putAttribute name="footer" value="/fragments/footer.jsp"/> 
</tiles:insertTemplate> 




插入一个定义的基本标签是<tiles:insertDefinition />,如下例:

<tiles:insertDefinition name="main"/>  




在模板中可以指定属性的位置。设置一个属性的基本标签有两种,如果属性被指定为定义或模板,则使用<tiles:insertAttribute />标签;如果属性被指定为字符串,则使用<tiles:getAsString />标签。如:
<tiles:getAsString name="title"/> 
<tiles:insertAttribute name="header"/> 
<tiles:insertAttribute name="footer"/> 



Tiles架构在各个领域中的应用
在Web应用中直接使用Tiles架构
在web.xml中加入下述servlet即可实现在Web应用中直接使用Tiles架构的目的。

<servlet>  
  <servlet-name>tiles</servlet-name>  
  <servlet-class>  
    org.apache.tiles.servlet.TilesServlet  
  </servlet-class>  
  <load-on-startup>2</load-on-startup>  
</servlet>  



TilesServlet默认查找“/WEB-INF/tiles.xml”作为Tiles核心配置文件,如果要手动指定Tiles核心配置文件的位置,可以为Servlet设置名为“definitions-config”的初始化参数值,样例如下:

<servlet>  
  <servlet-name>tiles</servlet-name>  
  <servlet-class>  
    org.apache.tiles.servlet.TilesServlet  
  </servlet-class>  
  <init-param>  
    <param-name>definitions-config</param-name>  
    <param-value>  
      /WEB-INF/tiles-defs.xml  
    </param-value>  
  </init-param>  
  <load-on-startup>2</load-on-startup>  
</servlet>  



在传统Servlet中利用TilesServlet加载的Tiles定义(definition)可以使用TilesContainer的render方法实现转向到Tiles定义。代码如下:


TilesContainer container = TilesAccess.getContainer(  
    request.getSession().getServletContext());  
container.render("main", request, response);  
  



更多内容
关于Tiles的更多内容,如

List Attributes
请参考Tiles官方网站:http://tiles.apache.org



Tiles 知识要点
Tiles中的三大元素:定义、模板、属性
template = URI{1}
definition = template{1} + attribute*
attribute = STRING{1} | definition{1} | template {1}



Tiles核心配置文件

<!DOCTYPE tiles-definitions PUBLIC 
  "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
  "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 

 


引入Tiles标签库
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  

 


在Web应用中使用直接Tiles架构
在web.xml中关于Tiles架构的定义
<servlet>  
  <servlet-name>tiles</servlet-name>  
  <servlet-class>  
    org.apache.tiles.servlet.TilesServlet  
  </servlet-class>  
  <init-param>  
    <param-name>definitions-config</param-name>  
    <param-value>  
      /WEB-INF/tiles-defs.xml  
    </param-value>  
  </init-param>  
  <load-on-startup>2</load-on-startup>  
</servlet>  




资源
http://tiles.apache.org/

JAR包
Tiles开发包
tiles-core-2.0.3.jar
tiles-api-2.0.3.jar
tiles-jsp-2.0.3.jar

Tiles所依赖的开发包
commons-beanutils-1.7.0.jar
commons-digester-1.8.jar
commons-logging-api-1.1.jar
分享到:
评论

相关推荐

    struts2 权威指南pdf+源代码

    Struts2是Apache软件基金会下的一个项目,其前身是Struts1,通过与Spring和Hibernate等其他流行框架的集成,使得企业级开发变得更加便捷。 《Struts2权威指南》是由著名Java技术专家李刚编著的一本经典教材,这本书...

    struts2 权威指南完整版PDF

    Struts2是Apache软件基金会开发的一个开源MVC框架,它基于Model-View-Controller(模型-视图-控制器)架构模式,旨在简化企业级Java Web应用程序的开发。这本书《Struts2权威指南》全面深入地介绍了这个框架的核心...

    struts1.x标签详解

    - [Struts 1.x 用户指南](http://struts.apache.org/1.x/struts-user-guide.pdf) - [Cookies 规范](https://www.ietf.org/rfc/rfc2109.txt) #### 八、关于作者 本文作者是一位经验丰富的 Java Web 开发者,专注于 ...

    struts1.x标签库详解

    Struts1.x 标签库是 Apache Jakarta 项目的一部分,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean Tags、HTML Tags、Logic ...

    Struts用户指南

    Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java EE的Web应用程序。它提供了MVC(Model-View-Controller)设计模式的实现,帮助开发者更有效地组织和管理应用的业务逻辑、用户界面和...

    Struts编程(第2版)

    《Struts编程(第2版)》是一本深入讲解Struts框架的权威指南,它针对的是Java Web开发领域。Struts是Apache软件基金会旗下面向MVC(模型-视图-控制器)设计模式的Java EE应用程序框架,它极大地简化了构建基于JSP和...

    struts-1.2.9-bin 及 struts-1.2.9-src

    Struts 是一个开源的Java...目前,Apache Struts已经更新到了2.x版本,提供了更多现代的功能和改进的安全性。对于新的项目,建议使用更新的框架版本,如Struts 2或者其他现代的Web框架,如Spring MVC或Play Framework。

    struts-2.5-all.zip

    Struts 2 框架是Apache软件基金会的一个项目,基于Model-View-Controller (MVC)设计模式,旨在简化Java EE应用程序的开发。它继承了Struts 1的优点,并融合了WebWork框架的功能,提供了更强大、更灵活的架构。 在...

    struts-1.3.8-all.zip

    Struts是Apache软件基金会下的一个开源项目,是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。Struts 1.3.8是该框架的一个版本,主要致力于提供稳定性和安全性更新,以及对旧版Struts 1.x的...

    Webwork教程

    - **WebWork**:最初由OpenSymphony团队开发,后来被Apache软件基金会整合进Struts项目,成为Struts2的一部分。 - **Struts2**:基于WebWork和Struts1.x的优点而设计的新一代Web框架。 2. **特点对比:** - **...

    struts 2.0新手学习全材料

    它由Apache软件基金会开发,是Struts 1.x的升级版,提供了更强大的功能和更好的性能。 在学习Struts 2.0时,首先需要理解其核心概念。`struts2参考`可能包含有关框架的全面指南,包括配置、拦截器、结果类型、动作...

    struts1标签库详解

    Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean Tags、HTML Tags、...

    J2EE 就业秘笈J2EE面试

    **J2EE就业秘笈与面试指南** J2EE(Java 2 Platform, Enterprise Edition)是一种广泛用于构建企业级Web应用程序的技术平台。本篇将详细探讨J2EE相关的面试知识点,帮助求职者准备J2EE相关职位的面试。 **1. JAVA...

    Struts框架(Struts框架详细介绍)

    Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它由Apache软件基金会开发并维护。Struts框架旨在提供一种结构化的、可维护性高的开发方式,帮助开发者构建动态的、数据驱动的...

    JSF开发规范

    &lt;%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x" %&gt; ``` #### 4. BackingBean编码规范 ##### 4.1 BackingBean命名规范 - BackingBean的命名应遵循一定的规则,通常建议使用描述性的名词或...

Global site tag (gtag.js) - Google Analytics