`
newleague
  • 浏览: 1505568 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Struts1 tiles笔记

阅读更多

Tiles标签库

Tiles标签的<tiles:insert>标签和jsp include 指令具有相同的功能。
<tiles:insert page="indexContent.jsp" flush="true"/>
flush为true,表示执行插入之前,先调用当前页面的输出流的flush()方法;

使用tiles标签的步骤
(1)安装tiles标签库需要的文件:
 WEB-INF/lib中包含:struts.jar ;commons-digester.jar commons-beanutils.jar commons-collections.jar commons-logging.jar
 (2) web.xml
 <taglib>
  <taglib-uri></taglib-uri>
  <taglib-location></taglib-location>
 </taglib>
 (3)创建页面,<%@ taglib uri=“” prefix="">引入标签库;

确定,框架代码仍然重复很多;

采用 tiles模板
使用tiles模板的步骤
(1)安装tiles标签所需要的文件
(2)在web。xml中配置<taglib>
(3)定义模板文件
 在需要变换的地方,即动态加载的部分,使用<tiles:insert attribute="***"/>
 attribute属性指定了 待插入内容的逻辑名,而没有指定真正被插入的文件;
(4)在动态加载的页面中运用tiles模板
 <tiles:insert page="layout.jsp" flush="true">
  <tiles:put name="sidebar" value=""/> <!--name对应上步中的attribute-->
  <tiles:put name="header" value=""/>
  <tiles:put name="content" value="**.jsp"/><!--这里为动态加载的部分,不同的页面就不同;-->
  <tiles:put name="footer" value=""/>
</tiles:insert>

不同的页面中除content变换,其他都不变,仍然可以再简化;

 Tiles组件
Tiles组件可以代表一个完整的网页,也可以代表网页的一部分。
简单的tiles组件可以组合成复杂的tiles组件,或被扩展为复杂的tiles组件;

使用方法
tiles框架在专门的xml文件中配置tiles组件。
例如:
 <tiles-definitions>
  <definition name="index-definition" path="/layout.jsp">

 <!--name属性指定了tiles组件名字; path为模板-->
   <put name="sidebar" value="sidebar.jsp"/>
   <put name="header" value="header.jsp"/>
   <put name="content" value="indexContent.jsp"/>
   <put name="footer" value="footer.jsp"/>
  </definition>
 </tiles-definitions>
步骤
(1)安装tiles标签库所需的文件;
(2)web.xml文件中配置<taglib〉元素;
(3)在专门的xml中配置tiles组件,设文件名为tiles-defs.xml; 放置在WEB-INF目录下;
(4)在struts-config.xml文件中配置 tiles-plugin插件;
 <plug-in className="org.apache.struts.tiles.TilesPlugin">
  <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/><!-如果有多个,用,号分割-->
  <set-property property="definitions-parser-validate" value="true"/>
 </plug-in>
(5)web.xml中配置actionservlet;
 <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-name>
  </init-param>
  <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
(6)在index.Jsp中插入tiles组件
 如<tiles:insert definition="index-definition"/>

如果tiles里面的某个definition代表一个完整的网页,那么可以在struts-config.xml中直接映射;
例如
 <action-mappings>
  <action path="/index" type="org.apache.struts.actions.ForwardAction" parameter="index=definition"/>
 </action-mappings>

 

tiles组件的组合;
<tiles-definitions>
 <definition name="sidebar-definition" path="/sidebar-layout.jsp">
  <put name="top" value="flags.jsp"/>
  <put name="bottom" value="sidebar-links.jsp"/>
 </definition>

 <definition name="index-definition" path="/layout.jsp">
  <put name="sidebar" value="sidebar-definition" type="definition"/>
  <put name="header" value="header.jsp"/>

  <put name="content" value="indexContent.jsp"/><!--页面1-->

  <put name="footer" value="footer.jsp"/>
  ......
 </definition>

 <definition name="product-definition" path="/layout.jsp">
  <put name="sidebar" value="sidebar-definition" type="definition"/>
  <put name="header" value="header.jsp"/>

  <put name="content" value="productContent.jsp"/><!--页面2-->

  <put name="footer" value="footer.jsp"/>

  ......
 </definition>
......
</tiles-definitions>

 

tiles组件的扩展:
 
先定义一个包含公共内容的base-definition组件,然后再让动态加载的页面的tiles组件继承这个父类;

<tiles-definitions>
 <definition name="sidebar-definition" path="/siderbar-layout.jsp">
  <put name="top" value="flags.jsp"/>
  <put name="bottomf" value="sidebar-links.jsp"/>
 </definition>
 <definition name="base-definition" path="/layout.jsp">
  <put name="sidebar" value="sidebar-definition" type="definition"/>
  <put name="header" value="header.jsp"/>
  <put name="content" value=""/>
  <put name="footer" value="footer.jsp"/> 
 </definition>
 <definition name="index-definition" extends="base-definition">
  <put name="content" value="indexContent.jsp"/> <!--页面1-->
 </definition>

 <definition name="product-definition" extends="base-definition">
  <put name="content" value="productContent.jsp"/><!--页面2-->
 </definition>
</tiles-definitions>

 

siderbar-layout.jsp

<table>
 <tr>
  <tiles:insert attribute="top"/>
 </tr>
 <tr>
  <tiles:insert attribute="bottom"/>
 </tr>
</table>

layout.jsp
<html>
 <head></head>
 <body>
  <table>
   <tr> 
    <td> <tiles:insert attribute="siderbar"/></td>
    <td>
     <table>
      <tr>
       <td><tiles:insert attribute="header"/></td>
      </tr>
      <tr>
       <td><tiles:insert attribute="content"/></td>
      </tr>
      <tr>
       <td><tiles:insert attribute="footer"/></td>
      </tr>

     </table>
    </td>

   </tr>
  </table>
 </body>
</html>

分享到:
评论

相关推荐

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

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

    Struts Tiles框架是Java Web开发中的一个重要组成部分,主要用于构建可重用和模块化的Web应用程序页面布局。...通过阅读"struts-tiles笔记.txt"和在"workspace"中进行实践,可以进一步掌握这个强大的页面布局工具。

    北京圣思园Struts2 全套笔记 课件 详解

    本资源“北京圣思园Struts2 全套笔记 课件 详解”包含了深入学习Struts2所需的关键知识点,旨在帮助开发者全面理解和掌握该框架。 首先,我们来了解一下Struts2的核心概念: 1. **Action类**:在Struts2中,Action...

    Struts1新手入门笔记(全)

    在本入门笔记中,我们将逐步了解如何开始使用Struts1。 首先,Struts1的核心组件包括前端控制器ActionServlet,它作为整个应用的入口点,负责处理所有的HTTP请求。ActionServlet会解析请求,根据配置文件(通常位于...

    struts2四天的学习笔记

    7. **Struts2插件**:Struts2社区提供了许多插件,如Tiles插件(用于布局管理)、JSON插件(支持JSON响应)和Struts2 Dojo插件(提供富客户端功能)等,这些插件极大地增强了Struts2的功能。 8. **国际化...

    struts笔记 hibernate笔记

    5. **Tiles框架**:Struts可以集成Tiles来实现复杂的页面布局,通过定义模板和组件来构建动态网页。 6. **国际化与本地化**:Struts支持多语言,可以通过资源文件实现不同语言环境下的显示。 **Hibernate框架** ...

    struts学习用笔记

    8. **Tiles框架集成**:Tiles是Struts的一个扩展,它允许将页面布局分解为多个组件(Tiles),方便复用和管理复杂的页面结构。 9. **拦截器(Interceptor)**:Struts 2引入了拦截器,它们是一系列预定义或自定义的...

    struts-2.3.4笔记

    Struts 2 的出现是 Struts 1 的升级版本,旨在提供更强大、更灵活的功能,并吸收了其他框架如 WebWork 的优点。 在Struts 2.3.4版本中,有几个关键知识点值得深入理解: 1. **Action类与结果**:Struts 2 中的核心...

    黑马程序员Struts2笔记

    Struts2拥有丰富的插件库,如Tiles、JSON、FreeMarker等,这些插件可以帮助开发者更高效地构建Web应用。 10. **实际应用示例** 黑马程序员的笔记中可能包含了如何创建一个简单的Struts2应用,从HelloWorld实例到...

    Struts2学习笔记

    5. 插件与扩展:Struts2拥有丰富的插件库,如Tiles、JSON、Freemarker等,方便快速开发。 总的来说,Struts2作为一款成熟的Web框架,不仅提供了完整的MVC解决方案,还通过拦截器和OGNL等机制增强了灵活性和可扩展性...

    struts2笔记

    此外,Struts2还引入了Tiles框架,用于布局和组合视图,增强了视图管理的灵活性。 总的来说,Struts2的出现是为了解决Struts1存在的问题,它提供了更好的可测试性、更低的耦合度、更强的扩展性以及对多种视图技术的...

    struts2学习笔记

    这个“Struts2学习笔记”文档很可能是对Struts2框架的详细解析和实践指南。 Struts2的核心特性包括: 1. **Action和Result**: Struts2中的Action类是业务逻辑的载体,负责处理用户请求。Action执行完成后,会返回...

    Struts1.x常用的开发包,需要学习struts1.x朋友可以下载

    7. **Tiles框架**:Tiles是Struts1.x的一个插件,用于构建复杂的页面布局。它允许开发者定义页面模板(Tiles Definition),并组合多个组件来创建动态页面。 8. **Exception Handling**:Struts1.x提供了异常处理...

    Struts2文档笔记

    - **强大的插件架构**:Struts2允许开发者使用插件扩展框架功能,如Tiles、Tiles2、Freemarker等。 - **强大的国际化支持**:可以轻松实现多语言应用。 - **类型转换**:自动将表单数据转换为Action属性的类型,...

    Servlet-Struts-Hibernate笔记分享

    此外,Struts1还提供了Tiles框架,用于创建可重用的页面布局。 Hibernate是一个对象关系映射(ORM)框架,它消除了Java应用程序与数据库之间的低级交互。通过XML配置文件或注解,Hibernate可以自动将Java对象转换为...

    struts2学习笔记.rar

    Struts2还提供了强大的插件系统,如Tiles插件用于页面布局,Struts2-dojo-plugin支持AJAX功能,Struts2-convention-plugin简化了配置,实现了基于约定优于配置的开发方式。此外,Struts2还可以与其他框架集成,如...

    Struts 1.3.8 学习笔记(一)

    6. **标签库**:Struts 自带一组丰富的 JSP 标签库,如 html、bean、logic 和 tiles,这些标签可以帮助开发者更高效地创建 JSP 页面,减少手写 HTML 和脚本代码。 7. **工具支持**:Struts 1.3.8 版本也提供了开发...

    Struts-笔记-1

    Struts-笔记-1很可能是对学习或研究Struts框架过程中的重要记录,它可能包含了初学者如何理解Struts的核心概念、架构以及如何在实际项目中应用的要点。 首先,Struts框架的起源和发展对于理解其重要性至关重要。...

    struts2.1.8学习笔记

    7. **Tiles插件**:Struts2.1.8支持Tiles框架,允许开发者创建可重用的页面布局和组件,提高界面设计的灵活性。 8. **国际化(Internationalization, i18n)**:Struts2提供了对多语言的支持,开发者可以通过资源...

Global site tag (gtag.js) - Google Analytics