`
还有也许
  • 浏览: 171447 次
  • 性别: 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开发技能是非常有价值的。

      铅笔头识别数据集,1692张原始训练图,640*640分辨率,91.1%的正确识别率,标注支持coco json格式

      铅笔头识别数据集,1692张原始训练图,640*640分辨率,91.1%的正确识别率,标注支持coco json格式

      高校网络教学的体系规划与创建.docx

      高校网络教学的体系规划与创建.docx

      SpringBoot的学生心理咨询评估系统,你看这篇就够了(附源码)

      SpringBoot的学生心理咨询评估系统,你看这篇就够了(附源码)

      遗传算法优化BP神经网络提升交通流量预测精度的技术实现与应用

      内容概要:本文详细介绍了如何使用遗传算法优化BP神经网络,以提高交通流量预测的准确性。文中首先解释了BP神经网络的基本结构及其局限性,即容易陷入局部最优解的问题。随后,作者展示了遗传算法的工作原理,并将其应用于优化BP神经网络的权重和偏置。通过定义适应度函数、选择、交叉和变异等步骤,实现了对BP神经网络的有效改进。实验结果显示,优化后的BP神经网络在交通流量预测中的精度显著高于传统的BP神经网络,特别是在处理复杂的非线性问题时表现出色。 适用人群:对机器学习、深度学习以及交通流量预测感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要进行精确交通流量预测的应用场景,如智能交通系统、城市规划等领域。主要目标是通过遗传算法优化BP神经网络,解决其易陷入局部最优的问题,从而提高预测精度和稳定性。 其他说明:文中提供了详细的Python代码实现,帮助读者更好地理解和实践这一优化方法。同时,强调了遗传算法在全局搜索方面的优势,以及其与BP神经网络结合所带来的性能提升。此外,还讨论了一些具体的实施技巧,如适应度函数的设计、交叉和变异操作的选择等。 标签1,标签2,标签3,标签4,标签5

      H5U PLC与触摸屏集成框架:总线伺服控制及跨平台移植的最佳实践

      内容概要:本文详细介绍了H5U框架在PLC与触摸屏集成方面的应用,特别是在总线伺服控制和跨平台移植方面。文章首先解析了伺服控制的核心代码,如使能模块和绝对定位指令,强调了标准化控制流程的优势。接着讨论了触摸屏交互,通过直接映射PLC的DB块地址简化了数据处理。然后介绍了总线配置,尤其是EtherCAT总线初始化及其容错设计。此外,文章还探讨了框架的移植性和报警处理设计,展示了其在不同PLC品牌间的易用性和高效的故障恢复能力。 适合人群:从事工业自动化领域的工程师和技术人员,特别是有PLC编程经验和需要进行伺服控制系统开发的人群。 使用场景及目标:①快速搭建和调试基于PLC和触摸屏的自动化控制系统;②提高多轴设备的调试效率;③实现跨平台的无缝移植;④优化报警管理和故障恢复机制。 其他说明:该框架不仅提供了详细的代码示例和注释,还包含了丰富的实战经验和最佳实践,使得新手能够快速上手,而资深工程师可以在此基础上进一步创新。

      游戏开发UE5引擎核心技术解析与应用:涵盖安装配置、项目创建及蓝图编辑器详解文档的主要内容

      内容概要:本文档《UE5开发.txt》全面介绍了Unreal Engine 5(UE5)的基本概念、安装配置、项目创建、文件结构及常用功能。UE5是一款强大的游戏引擎,支持实时渲染、蓝图创作、C++编程等功能。文档详细描述了UE5的安装步骤,包括硬件要求和环境配置;项目创建过程,涵盖项目模板选择、质量预设、光线追踪等设置;文件结构解析,重点介绍了Config、Content和.uproject文件的重要性。此外,文档深入讲解了蓝图编辑器的使用,包括变量、数组、集合、字典等数据类型的操作,以及事件、函数、宏和事件分发器的应用。蓝图作为一种可视化脚本工具,使开发者无需编写C++代码即可快速创建逻辑,适用于快速开发和迭代。 适合人群:具备一定编程基础的游戏开发者、设计师和对游戏开发感兴趣的初学者,尤其是希望深入了解UE5引擎及其蓝图系

      餐馆点菜系统概要设计说明书.doc

      餐馆点菜系统概要设计说明书.doc

      5+1档轿车手动变速箱设计说明书.doc

      5+1档轿车手动变速箱设计说明书.doc

      1万吨自来水厂详细设计说明书.doc

      1万吨自来水厂详细设计说明书.doc

      wordpress外贸电商企业产品主题

      wordpress外贸电商企业产品主题 页面展示图https://i-blink.csdnimg.cn/direct/e45b2e2e8e27423eb79bda5f4c1216d7.png

      低效林改造作业设计说明书.doc

      低效林改造作业设计说明书.doc

      西门子200smart编程软件V2.8.2.1

      西门子200smart编程软件V2.8.2.1

      135调速器操纵手柄 设计说明书.doc

      135调速器操纵手柄 设计说明书.doc

      蓝桥杯全国软件和信息技术专业人才竞赛指导文档.pdf

      内容概要:本文档为蓝桥杯全国软件和信息技术专业人才竞赛提供了全面的指导,涵盖竞赛概述、流程与规则、核心考点与备赛策略、实战技巧与避坑指南以及备赛资源推荐。蓝桥杯竞赛由工信部人才交流中心主办,涉及算法设计、软件开发、嵌入式系统、电子设计等领域。文档详细介绍了参赛流程(报名、省赛、国赛、国际赛),并针对软件类和电子类竞赛分别阐述了高频考点和备赛建议。对于软件类,强调了算法与数据结构的重要性,如排序、动态规划、图论等;对于电子类,则侧重于硬件基础和开发工具的使用。此外,还提供了详细的答题策略、常见陷阱规避方法及工具调试技巧。; 适合人群:高校本专科生、研究生,尤其是对算法设计、软件开发、嵌入式系统等领域感兴趣的计算机科学及相关专业的学生。; 使用场景及目标:①帮助参赛选手熟悉竞赛流程和规则,明确各阶段任务;②提供系统的备赛策略,包括高频考点的学习和专项突破;③指导选手掌握实战技巧,避免常见错误,提高答题效率和准确性。; 阅读建议:此文档不仅提供了理论知识,还包含了大量实战经验和备赛资源推荐,建议读者结合自身情况制定个性化的备赛计划,充分利用提供的资源进行练习和准备。

      基于行块抽取正文内容的java版本的改进算法.zip

      基于行块抽取正文内容的java版本的改进算法.zip

      基于S7-200 PLC和MCGS的快递分拣系统设计与实现:硬件配置、梯形图编程及组态应用

      内容概要:本文详细介绍了基于西门子S7-200 PLC和MCGS组态软件的快递分拣系统的设计与实现方法。首先阐述了硬件配置的关键要点,包括IO分配表的具体设置以及传感器和执行机构的连接方式。接着深入解析了PLC程序中的梯形图逻辑,涵盖主传送带的连锁保护、机械臂动作的自保持逻辑和安全复位机制等核心部分。同时探讨了MCGS组态画面的应用,展示了如何通过脚本实现动态效果和数据统计功能。此外,文中还分享了一些调试经验和常见问题的解决方案,如防止传感器抖动、优化数据传输效率等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和组态软件有一定了解的人群。 使用场景及目标:适用于需要构建高效可靠的快递分拣系统的物流企业或相关项目开发者。目标是帮助读者掌握从硬件选型到软件编程的一整套实施流程,确保系统能够稳定运行并达到预期性能指标。 其他说明:文章不仅提供了理论指导,还结合实际案例进行了详细的步骤讲解,有助于读者更好地理解和应用于实践中。

      joblib-0.12.5-py2.py3-none-any.whl

      该资源为joblib-0.12.5-py2.py3-none-any.whl,欢迎下载使用哦!

      机器学习分类算法实战:基于sklearn的决策树、随机森林与KNN Python实现

      内容概要:本文详细介绍了三种经典的机器学习分类算法——决策树、随机森林和KNN分类器,在Python的sklearn库中的具体实现方法。首先,通过加载鸢尾花数据集进行数据准备,并将其划分为训练集和测试集。接着分别实现了决策树、随机森林和KNN分类器,展示了每种算法的关键参数配置及其对模型性能的影响。对于决策树,重点讨论了max_depth参数的作用以及如何通过可视化工具理解其分裂过程;随机森林部分强调了n_estimators参数的选择和特征重要性的评估;而KNN分类器则着重于特征标准化的重要性和n_neighbors参数的优化。此外,文中还提供了关于模型选择的指导,帮助读者根据不同应用场景选择合适的算法。 适合人群:对机器学习感兴趣的初学者和有一定编程基础的研发人员。 使用场景及目标:①理解并掌握决策树、随机森林和KNN分类器的工作原理;②学会使用sklearn库快速构建和评估分类模型;③能够根据具体问题特点选择最适合的分类算法。 其他说明:本文不仅提供了详细的代码示例,还分享了许多实践经验,如参数调优技巧、模型评估方法等,有助于读者更好地理解和应用这些算法。

    Global site tag (gtag.js) - Google Analytics