`
shyf12054213
  • 浏览: 33950 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Strutrs2 整合SiteMesh

阅读更多

     SiteMesh应用装饰器模式,通过filter截取request和response,然后给原始页面一定的装饰,把结果换回给客户端。对于被装饰的页面来说,完全无需关心本页面被装饰器装饰(装饰器配置在配置文件中,由装饰器配置文件来控制那个装饰器装饰哪些页面)。通过这种方式,可以最大限度的实现页面代码的复用,并提供优秀的解耦。

     下面是整合SiteMesh所需的步骤。

     1.把相应的jar包放到lib下。

     2.在web.xml中加上如下配置。

    <filter>
  <filter-name>struts-cleanup</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
 </filter>
 <filter>
  <filter-name>sitemesh</filter-name>
  <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
 </filter>
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    3.为了在jsp页面能用SiteMesh标签库则还需要导入SiteMesh标签库

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>

    下面是一个example装饰页面

<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
 <head>
  <title><decorator:title default="SiteMesh的装饰器页"/></title>
  <link href="images/main.css" rel="stylesheet" type="text/css">
  <decorator:head/>
  <s:head/>
  <script>
   function refresh()
   {
    document.getElementById("authImg").src='authImg?now=' + new Date();
   }
  </script>
 </head>
 <body>
  <table width="780" align="center">
   <tr>
    <td valign="top" width="200">
     <!-- 引入一个页面,临时指定所用的装饰器 -->
     <page:applyDecorator page="/decorators/book.html" name="panel" />
     <page:applyDecorator page="/decorators/link.html" name="panel" />
    </td>
    <td width="580">
     <table width="100%" height="100%">
      <tr>
       <td id="pageTitle">
        <decorator:title/>
       </td>
      </tr>
      <tr>
       <td valign="top" height="100%">
        <decorator:body />
       </td>
      </tr>
      <tr>
       <td id="footer">
       All Rights Reserved.<br>
       版权所有 Copyright@2006 Yeeku.H.Lee <br>
       如有任何问题和建议,<a href="mailto:kongyeeku@163.com">请E-mail to me</a>!<br>
       建议您使用1024*768分辨率,IE5.0以上版本浏览本站!
       </td>
      </tr>
     </table>
    </td>
   </tr>
  </table>
 </body>
</html>

      4.下面使用配置文件来定义装饰器 decorators.xml

   <?xml version="1.0" encoding="GBK"?>

<decorators defaultdir="/decorators">
    <!-- 在excludes元素下指定的页面将不会由SiteMesh来装饰 -->
    <excludes>
    </excludes>

 <!-- 创建一个名为main的装饰器,该装饰器页面为main.jsp,
      用于装饰pattern指定的URL的所有页面-->
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>

 <!-- 定义一个装饰器,但该装饰器默认不装饰任何页面 -->
    <decorator name="panel" page="panel.jsp"/>
</decorators>

分享到:
评论

相关推荐

    Struts2整合SiteMesh

    将Struts2与SiteMesh整合,可以实现更加统一和规范化的网站外观,并减少重复代码。 整合Struts2和SiteMesh主要涉及以下几个步骤: 1. **添加依赖**:首先,在项目中引入SiteMesh的jar包。如果使用的是Maven,可以...

    Struts2整合SiteMesh技巧

    ### Struts2整合SiteMesh技巧 #### 概述 在Web开发中,为了实现页面布局的统一性与可维护性,通常会采用一种称为“页面布局管理”的技术。Struts2框架提供了对SiteMesh的支持,这是一种强大的页面布局管理工具。...

    struts2+sitemesh例子

    Struts2和Sitemesh是两个非常流行的Java Web开发框架,它们在构建高效、结构化的MVC(模型-视图-控制器)应用中起到关键作用。Struts2是一个基于MVC设计模式的开源框架,主要用于控制应用程序的流程,而Sitemesh则是...

    struts2与sitemesh整合所需架包

    要将Struts2和Sitemesh整合,我们需要两个关键的组件:Sitemesh框架本身(在这个例子中是版本2.4.2)和Struts2的Sitemesh插件(版本2.1.8)。这两个组件的集成使得Struts2能够自动将Sitemesh应用于其返回的页面,...

    struts2-sitemesh-plugin-2.0.6.jar

    struts框架与sitemesh框架整合的插件,在java web开发中可以制作模板页,使自己做的网站看起来更专业

    Struts2.0 与 sitemesh的例子

    在Struts2与Sitemesh的整合中,我们通常会在Struts2的配置文件中添加Sitemesh的拦截器,这样,每次Struts2处理完Action返回的结果后,Sitemesh会自动对结果页面进行装饰。这样不仅简化了开发者的工作,也让网站的...

    struts2 +sitemesh:实例学习

    Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的...

    struts2sitemesh-freemarker 源码

    在源码中,可以看到Sitemesh配置和过滤器的实现,以及如何与Struts2整合,确保每个Action的结果都能被正确装饰。 3. **FreeMarker模板引擎**:FreeMarker是一个基于模板的语言,它与Java代码分离,使得视图层更加...

    SiteMesh 开发 struts插件

    而Struts2 SiteMesh 插件则使得整合 SiteMesh 和 Struts2 框架变得更加方便,让开发者可以充分利用 SiteMesh 的功能来提升用户体验。 首先,我们需要理解 Struts2 是一个基于 Model-View-Controller(MVC)设计模式...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...

    sitemesh+ spring2 + struts2 + hibernate 的 demo

    在SSH2集成中,Sitemesh可以用来装饰Struts2的Action结果页面,确保每个页面都有统一的头部、底部和侧边栏等元素。 **Spring框架**: Spring的核心是IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...

    struts2 spring ibatis整合的最少最全jar包

    1. 添加依赖:整合SSH,需要在项目中引入相应的jar包,包括Struts2、Spring、iBatis以及它们的依赖库,例如sitemesh用于页面装饰。确保包含所有必要的jar,如描述中提到的,这里有18个jar包,涵盖了基本需求。 2. ...

    struts2学习--helloword

    在Struts2中整合SiteMesh,你需要将sitemesh-2.3.jar和Struts2-sitemesh-plugin-2.0.6.jar添加到项目的类路径下。然后,在`web.xml`中配置ActionContextCleanUp过滤器和SiteMesh的PageFilter,这两个过滤器分别用于...

    Struts2+Spring+Ibatis环境配置.doc

    8. `struts2-sitemesh-plugin-2.0.11.jar`:整合Sitemesh进行页面布局和装饰。 Spring框架的核心组件主要是`spring.jar`,它提供: 1. 依赖注入(DI)和控制反转(IoC):使得对象间的依赖关系可以在运行时自动管理...

    struts2+spring +hibernate 整合应用实现用户登陆。

    【Struts2+Spring+Hibernate 整合应用】 在Java Web开发中,Struts2、Spring和Hibernate是三个非常重要的开源框架。它们各自解决了不同层面的问题,而将它们整合在一起可以构建出高效、灵活和可维护的Web应用程序。...

    spring+struts2+ibatis整合

    4. **Spring与Struts2整合**:添加Spring插件到Struts2的配置文件,使Spring能够管理Struts2的Action实例。 5. **Spring与iBatis整合**:使用Spring的JDBC模板或MyBatis-Spring库,将iBatis的SqlSessionFactory注入...

    初试sitemesh实现模块简易整合

    本篇文章将详细介绍如何在项目中初步整合Sitemesh,以便实现模块化的设计。 ### 一、Sitemesh 概述 1. **装饰模式**:Sitemesh 使用装饰模式,通过拦截HTTP请求,动态地将页面内容与装饰模板结合,形成最终的HTML...

    struts2参考文档(word版)

    第五章可能涵盖Struts2的模型部分,包括数据持久化、DAO设计模式以及与ORM框架(如Hibernate、MyBatis)的整合。 第六章可能讲解Struts2的国际化和本地化支持,如何设置资源文件以支持多种语言,并在应用中动态切换...

Global site tag (gtag.js) - Google Analytics