`
还有也许
  • 浏览: 168509 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

sitemash实例与介绍

阅读更多

在一个偶然的机会我发现了原来我做的一个项目以前是的前台界面应用了sitemash,而且听说很不错,就按耐不住了,在网上搜了点儿帖写了一个例子。以备后用。

 

一、sitemash简介:

 

      SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。

     sitemesh的官方网站是:http://www.opensymphony.com/sitemesh/index.html

     sitemesh的下载地址是:http://www.opensymphony.com/sitemesh/download.action

 

二、运行原理:

 

SiteMesh框架是OpenSymphony团队开发的一个非常优秀的页面装饰器框架,它通过对用户请求进行过滤,并对服务器向客户端响应也进行过滤,然后给原始页面加入一定的装饰(header,footer等),然后把结果返回给客户端。通过SiteMesh的页面装饰,可以提供更好的代码复用,所有的页面装饰效果耦合在目标页面中,无需再使用include指令来包含装饰效果,目标页与装饰页完全分离,如果所有页面使用相同的装饰器,可以是整个Web应用具有统一的风格。

 

三、用实例说话:

     我用的是sitemesh 2.4的版本。

     1、为你的项目/WEB-INF/lib下添加一个sitemesh-2.4.1.jar

     2、在/WEB-INF/新建一个decorators.xml文件,文件内容如下:

    

<?xml version="1.0" encoding="utf-8"?>   
<decorators defaultdir="/decorators">       
   <!-- 此处用来定义不需要过滤的页面 -->       
   <excludes>       
   </excludes>       
   <!-- 用来定义装饰器要过滤的页面 -->       
   <decorator name="main" page="main.jsp">           
   <pattern>/*</pattern>       
   </decorator>   
</decorators>

     各个标签的作用:

   

  • defaultdir: 包含装饰器页面的目录
  • page : 页面文件名
  • name : 别名
  • role : 角色,用于安全
  • webapp : 可以另外指定此文件存放目录
  • Patterns : 匹配的路径,可以用*,那些被访问的页面需要被装饰。
  •  

        3、在[web-app]/WEB-INF/web.xml添加以下内容:

        

    <filter-name>sitemesh</filter-name>
         <filter-class>
    com.opensymphony.module.sitemesh.filter.PageFilter
        </filter-class>
      </filter>
      <filter-mapping>
         <filter-name>sitemesh</filter-name>
         <url-pattern>/*</url-pattern>
      </filter-mapping>

     

       4、在[web-app]下创建一个decorators文件夹,在该文件下再创建一个装饰页面main.jsp,包含以下内容:

       

    <%@ page contentType="text/html; charset=utf-8"%>
    <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%> 
    <html>
          <head>
              <title><decorator:title default="装饰器页面..." /></title>
              <decorator:head />
          </head>
         <body>
            sitemesh的例子<hr>
            <decorator:body />
            <hr>http://yanzhenwei.iteye.com
        </body>
    </html>

     

    这就是最主要的页面了,每一个被装饰的页面都是被这个装饰器装饰之后才返回你看到的那个页面的。所以可以把那些公共的js、css等修饰放到该处,其他界面就不用再引入了。

       5、在[web-app]下创建被装饰页面index.jsp,包含以下内容:

       

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <%@ page contentType="text/html; charset=utf-8"%>
    <html>
         <head>
           <title>Agent Test</title>
         </head>
         <body>
           <p>本页只有一句,就是本句.</p>
         </body>
    </html>

     

     

       下面是需要的jar包

    2
    1
    分享到:
    评论
    4 楼 还有也许 2011-09-10  
    直直走 写道
    当年我传授于你的

    好自恋啊
    3 楼 直直走 2011-09-07  
    当年我传授于你的
    2 楼 还有也许 2010-08-03  
    ligeqq 写道
    写的不错。
    不过
    web.xml貌似有误,
    忘了加 
    <filter> 

    哦,笔误,谢谢您的指点。
    1 楼 ligeqq 2010-08-02  
    写的不错。
    不过
    web.xml貌似有误,
    忘了加 
    <filter> 

    相关推荐

      基于shiro+struts2+hibernate+Spring+sitemash框架集合的毕业设计管理系统

      在本系统中,Spring作为核心容器,管理各个组件的生命周期,同时也作为数据访问抽象层,通过Spring JDBC或MyBatis与Hibernate结合,进一步优化数据访问。 【Sitemesh框架】Sitemesh是一个网页布局和装饰框架,用于...

      SSH英语学习网站

      SSH是三个Java开发框架的...通过这个实训项目,你可以深入理解SSH框架的协同工作,以及如何将它们与其他技术如Ajax和Sitemash集成,同时掌握文件上传下载的实际操作,这对于提升你的Java Web开发技能是非常有价值的。

      [net毕业设计]ASP.NET基于BS结构的实验室预约模型系统(源代码+论文).zip

      【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

      中医诊所系统,WPF.zip

      中医诊所系统,WPF.zip

      [net毕业设计]ASP.NET淘宝店主交易管理系统的设计与实现(源代码+论文).zip

      【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

      1-全国各省、297个地级市公路里程面板数据1999-2021年-社科数据.zip

      全国各省、297个地级市公路里程面板数据1999-2021年涵盖了中国各地区公路建设的详细情况,是衡量地区基础设施水平的重要指标。这些数据不仅包括了全国31个省份的公路里程,还深入到了297个地级市的层面,提供了从1999年至2021年的连续年份数据。这些数据来源于各省统计年鉴、经济社会发展统计数据库、地级市统计年鉴以及地级市发展统计公报,确保了数据的准确性和权威性。通过这些数据,可以观察到中国公路交通建设的发展不平衡性,沿海地区和长江中下游地区公路交通密度较高,而西部地区相对较低。这些面板数据为研究中国城市化进程、区域经济发展以及交通基础设施建设提供了宝贵的信息资源。

      技术处工作事项延期完成申请单.docx

      技术处工作事项延期完成申请单.docx

      数据库详细设计说明书中文最新版本

      本文为图书馆管理课程设计SQL Server功能规范说明书。本说明书将: 描述数据库设计的目的; 说明数据库设计中的主要组成部分; 说明数据库设计中各功能的实现。 本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系);在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考;有需要的朋友可以下载看看

      WebSocketError(解决方案).md

      项目中常见的问题,记录一下解决方案

      octopart(样本).csv

      octopart数据格式样例

      [net毕业设计]ASP.NET通用作业批改系统设计(源代码+论文).zip

      【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

      Oracle11gRAC安装与配置forLinux中文最新版本

      本文档主要讲述的是Oracle 11g RAC安装与配置for Linux;希望对大家的学习会有帮助 文档结构 第一部分:Oracle Grid Infrastructure安装 第二部分:Oracle Clusterware与Oracle Real Application Clusters安装前准备规程 第三部分:安装Oracle Clusterware与Oracle Real Application Clusters 第四部分:Oracle Real Application Clusters环境配置 第五部分:Oracle Clusterware与Oracle Real Application Clusters参考资料

      python教程.txt

      python教程.txt

      脸部痤疮检测数据集VOC+YOLO格式3763张7类别.zip

      文件太大放服务器下请务必到资源详情查看后然后下载 样本图:blog.csdn.net/2403_88102872/article/details/143979016 重要说明:数据集为小目标检测,训练map精度偏低属于正常现象,只要能检测出来即可。如果map低于0.5请勿奇怪,因为小目标检测是业界公认难检测的研究方向之一。 数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3763 标注数量(xml文件个数):3763 标注数量(txt文件个数):3763 标注类别数:7 标注类别名称:["blackheads","cyst","fore","nodule","papule","pustule","whiteheads"]

      ASP+ACCESS基于WEB社区论坛设计与实现(源代码+论文)(源代码+论文+说明文档).zip

      【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

      1-全国各地级市固定资产投资统计数据(附省、区县、行业)1996-2020年-社科数据.zip

      全国各地级市固定资产投资统计数据集覆盖了1996至2020年的时间跨度,提供了详尽的年度固定资产投资金额,单位为百万人民币。这些数据不仅包括了地级市级别的投资情况,还涵盖了省、区县以及行业等多个维度,为研究区域经济增长、投资结构和发展趋势提供了宝贵的数据支持。固定资产投资作为衡量一个地区经济发展活力和潜力的重要指标,反映了社会固定资产在生产、投资额的规模和速度。通过这些数据,研究人员可以深入分析不同地区、不同行业的投资特点,以及随时间变化的趋势,进而为政策制定和经济预测提供科学依据。

      training_plan_db.sql

      training_plan_db.sql

      [net毕业设计]ASP.NET多语种网络硬盘系统的设计(源代码+论文).zip

      【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

      5.html

      5

      1-全国各省地区城乡收入差距、泰尔指数、城镇农村居民可支配收入统计数据1990-2021年-社科数据.zip

      全国各省地区城乡收入差距、泰尔指数、城镇农村居民可支配收入统计数据集提供了1990至2021年间的详细数据,覆盖全国31个省份。该数据集不仅包括城镇居民和农村居民的人均可支配收入,还涵盖了乡村人口、全体居民人均可支配收入、城镇人口以及年末常住人口等关键指标。泰尔指数作为衡量收入不平等的重要工具,通过计算城镇收入与农村收入之比,为研究者提供了一个量化城乡收入差距的科学方法。这些数据不仅有助于分析中国城乡之间的经济差异,还能为政策制定者提供决策支持,以缩小城乡差距、促进区域均衡发展。数据集的丰富性使其成为社会科学领域研究城乡发展、收入分配不平等等问题的宝贵资源。

    Global site tag (gtag.js) - Google Analytics