`
j2ee_zhongqi
  • 浏览: 207102 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts中使用tiles

阅读更多
简介:

    最早的Tiles是组装在Struts1.1里面的,主要目的是为了将复数的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。 Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用

说明:

     Tiles增加了layout的概念,其实就是把一个页面划分为几块。通常的来说一个页面大概可以划分为如下几块:   
      head页面头部:存放一个运用的公共信息:logo等,如果是网站可能是最上面的一块。   
      menu页面菜单:放置一个运用中需要使用的菜单,或者在每一个页面都使用的连接。     footer页面尾部:如版权信息等。   
      body页面主题内容:每个页面相对独立的内容。
      如果按上面的划分那对每一个页面我们只要写body里面的内容,其他的就可以共享重用。   
     如果大多数页面的布局基本相同我们甚至可以使用一个jsp文件根据不同的参数调用不同的body。

Tiles配置和基本配置文件介绍

Tiles有一个配置文件:tiles-defs.xml   

tiles-defs.xml定义了每一个页面的组成元素和形式。下面我将说明如下所示的一个tiles-defs.xml文件   

tiles-defs.xml:

<tiles-definitions>  
 
<!--定义/layout/ mainLayout.jsp的组成名称为bugbase.mainLayout -->  
 <definition name="bugbase.mainLayout" path="/layout/mainLayout.jsp">  
   <put name="title" value="质量管理系统" />   
   <put name="logo" value="/WEB-INF/pages/main/logo.jsp" />   
   <put name="mainMenu" value="/WEB-INF/pages/main/mainMenu.jsp" /> 
  <put name="messages" value="/common/messages.jsp" />   
   <put name="submenu" value="/WEB-INF/pages/main/testManageSubMenu.jsp" />   
</definition>

这里的title是标题,logo是界面上最左上角的标志,质量管理系统有两级菜单,mainMenu是主菜单,是不变的,而subMenu是子菜单,六个模块就有六个子菜单,是随模块而变化的。messages是错误信息。   

<!--定义common.testManage,继承bugbase.mainLayout -->  

<definition extends="bugbase.mainLayout" name="common.setting">       
<put name="submenu" value="/WEB-INF/pages/main/settingSubMenu.jsp" />   
     <!--以上的元素将替换bugbase.mainLayout中的元素--> 
</definition>  
 

  这里的common.testManage是测试管理模块的意思,这就是一个模块对应一个subMenu。   
  <!—定义setting.projectInfo,继承common.setting -->   

   <definition extends="common.setting" name="setting.projectInfo">     
 <put name="leftBody" value="/WEB-INF/pages/common/body/projectinfoleftbd.jsp" />  
   <put name="rightBody" value="/WEB-INF/pages/common/body/projectinforightbd.jsp" />  

 </definition>   

这是说一个模块下有多个功能点,每个功能点下的左侧菜单是相同的,因此leftBody就是这个左侧菜单,变化的只是rightBody右侧部分而已。下面还有详解。  

 /layout/ mainLayout.jsp    …   
<html>   
<head>   
<title><tiles:getAsString name="title" /></title>   
…  
 </head>  
 <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="mainInit()" >  
 <table cellpadding="0" cellspacing="0" class="LogoTable" id="01" >   
  <tr valign="bottom">  
 <tiles:insert attribute="logo" />  
 <tiles:insert attribute="mainMenu" />  
 </tr>  

 <tr valign="top" >  
 <tiles:insert attribute="submenu" />  
 </tr>  

 </table>  

 <table class="MainTable" cellpadding="1" cellspacing="1"> 
  <tr class="TrMain">   
     <td width="225" >   
    <tiles:insert attribute="leftBody" />  
   </td>   

   <td width="775">   
     <table>  
    <tiles:insert attribute="messages" />  
   </table>  

 <tiles:insert attribute="rightBody" />  
 </td>  
 </tr>   
</table>   
</body>  
</html>  


 在web.xml里面配置tiles对应的taglib的配置如下:   web.xml   


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


在struts-config.xml里面配置tiles-defs.xml   Struts-config.xml 

  ----------------------------------------------------------------- 


  <plug-in className="org.apache.struts.tiles.TilesPlugin">  
    <set-property property="definitions-config" value="/WEB-INF/plugin/tiles-defs.xml" />  
    <set-property property="moduleAware" value="true" />  
     <set-property property="definitions-parser-validate"   value="true" />   
    </plug-in>


 



使用Tiles:

如果已经配置好tiles-defs.xml,接下来就可以在jsp文件中使用这些定义了。   
有如下的方式使用tiles  
 
<%@ include file="/common/taglibs.jsp"%>  
 <tiles:insert definition="setting.projectInfo" flush="true" />
 flush 等于true表示在插入操作之前,先调用当前页面的输出流的flush()方法。

  插入setting.projectInfo标记的一页 ,taglibs.jsp里包括这么一句话: 
  <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%> 
  根据tiles-defs.xml里的setting.projectInfo设置  
<definition extends="common.setting" name="setting.projectInfo">       
 <put name="leftBody" value="/WEB-INF/pages/common/body/projectinfoleftbd.jsp" />   
      
<put name="rightBody" value="/WEB-INF/pages/common/body/projectinforightbd.jsp" />  

 </definition>
  


知道leftBody是/WEB-INF/pages/common/body/projectinfoleftbd.jsp页面,而rightBody是/WEB-INF/pages/common/body/projectinforightbd.jsp页面。
所以我们只需要建立projectinfoleftbd.jsp和projectinforightbd.jsp页面的就OK了,而左侧部分就是项目设定中的菜单,因为项目设定中又包括很多子页,

所以在整个项目设定中的左侧菜单是不变的,变的只有右侧主体部分,而projectinforightbd.jsp这个页面即项目设定中的一个项目基本信息的子页,项目设定中有多个这样的子页,这些页是在tiles-defs.xml配置的,比如说   

<definition extends="common.setting" name="common.prjproductversionadd">   
   <put name="leftBody" value="/WEB-INF/pages/common/body/projectinfoleftbd.jsp" />   
   <put name="rightBody" value="/WEB-INF/pages/project/body/prjproductversionaddrightbd.jsp" /> 

  </definition> 
  
leftBody是相同的,都为projectinfoleftbd.jsp,变化的只有rightBody。
  • 大小: 26.7 KB
  • 大小: 15.6 KB
  • 大小: 21.7 KB
  • 大小: 17.8 KB
  • 大小: 22.1 KB
分享到:
评论

相关推荐

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

    同时,需要在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中配置Tiles插件,并在应用的JSP页面中使用Tiles标签来组织内容。 总结起来,使用Struts中的Tiles模板需要一系列的jar包支持,这些库...

    struts2.0 整合tiles 配置

    将Struts2与Tiles结合使用,可以更加灵活地管理页面结构,实现统一的页面风格,提高开发效率。 #### 二、所需JAR包 首先,为了能够成功地整合Struts2与Tiles,我们需要确保项目的类路径中包含以下JAR包: 1. **...

    Struts2+Tiles

    通过阅读和学习《Struts2+Tiles》相关的博客文章(如博文链接所示),你可以深入理解这两者的集成方式,如何配置Struts2的struts.xml和tiles.xml文件,以及如何在Action中使用Tiles API来决定页面内容。此外,你还能...

    Struts2中使用Tiles组件

    在Struts2中使用Tiles组件,可以更有效地管理和构建动态Web应用的用户界面。 首先,我们需要理解Tiles的基本概念。Tiles是一个视图框架,它的核心思想是页面模板和组合。通过定义模板,我们可以创建一个基本的布局...

    Struts2与tiles集成示例

    4. **Action Result配置**: 在Action的结果配置中,使用Tiles的定义作为结果类型,指定返回哪个Tiles定义。 5. **JSP页面引用**: 在JSP页面中,通过Tiles标签库引用Tiles定义,实现页面的动态组合。 通过Struts2和...

    Struts1-tiles标签

    Struts1中的Tiles标签库是一种强大的布局管理工具,旨在提高Web应用的可重用性、可扩展性和可维护性。Tiles框架是Apache Software Foundation发起的一个开源项目,它为开发者提供了创建复合式网页的能力,允许在运行...

    Struts2 tiles操作例子

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

    struts2-tiles-plugin-2.0.11.2.jar

    struts2.0中使用Tiles框架所需jar包之一

    struts2 tiles 模板搭建源码可运行

    Struts2是一个流行的Java Web应用程序框架,用于构建和维护可扩展、...这将有助于提升你在Java Web开发中的技能,尤其是对于那些需要构建大型、结构复杂的Web应用的开发者来说,掌握Struts2和Tiles的使用是必不可少的。

    struts中tiles标签简介

    - **Definition**:在Tiles中,每个页面片段都称为一个“Definition”,它是构建复杂页面的基本单位。每个Definition都有一个唯一的标识符,可以用来在整个应用程序中引用。 - **Attributes**:在Tiles中,用于传递...

    struts2集成tiles2.myeclipse10教程

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

    struts-tiles框架

    在Struts-Tiles中,"Tiles"指的是页面模板或布局定义,它描述了页面的结构和内容如何组合。这些模板可以包含静态HTML元素,也可以包含动态内容,如JSP片段。"Definitions"是Tiles的配置,它们定义了如何将不同的...

    struts2-tiles-plugin-2.1.6.jar

    struts2-tiles-plugin-2.1.6.jar

    struts资料\Tiles框架--页面布局

    要在Struts应用中使用Tiles,需要添加相应的依赖库,并在Struts的配置文件(struts-config.xml)中配置Tiles插件。然后,可以使用Tiles的标签库来引用定义,将定义插入到JSP页面中。 以上就是关于Struts Tiles框架...

    struts2 mvc tiles

    在Struts2中使用Tiles的主要步骤包括: 1. **配置Tiles**:在struts.xml配置文件中添加Tiles插件的配置,以及定义页面模板。 2. **定义Tiles定义**:创建一个或多个tiles-defs.xml文件,定义每个页面模板及其组成...

    一个简单的应用Struts中tiles的例子

    Struts和Tiles是Java Web开发中的两个重要框架,它们常被结合使用来构建高效、可维护的MVC(模型-视图-控制器)应用程序。在本示例中,我们将深入探讨如何在一个简单的应用中整合Struts与Tiles。 Struts是一个开源...

    tiles+struts2

    4. **使用Tiles动作结果**:在Struts2的动作类中,设置返回类型为Tiles结果,并指定相应的Tiles定义。 ```java public class MyAction extends ActionSupport { public String execute() { // 业务逻辑... ...

    struts2.0 + tiles配置案例源码

    Struts2.0和Tiles是两个非常重要的Java Web开发框架,它们在构建高效、结构化的MVC(模型-视图-控制器)应用中扮演着重要角色。Struts2.0是一个强大的、开源的MVC框架,它继承了Struts1.x的优点并解决了其存在的问题...

    struts2.1.8与tiles2.0 demo

    2. **配置Struts2**:在struts.xml中启用Tiles插件,并配置拦截器。 3. **配置Tiles**:创建tiles.xml文件,定义页面布局和组件。 4. **编写Action**:实现业务逻辑,定义返回的视图名称。 5. **创建JSP页面**:使用...

    struts_tiles.rar_Tiles_struts_struts til

    在Struts Tiles中,一个"Tile"可以被视为一个独立的页面片段,如头部、脚部、侧边栏等。这些Tile可以单独开发和维护,然后在需要的地方进行组装。这种设计模式鼓励了代码的模块化,减少了页面之间的重复代码,使得...

Global site tag (gtag.js) - Google Analytics