`
yingtong
  • 浏览: 1655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

SiteMesh学习笔记

 
阅读更多

下面是我学习sitemesh的时候总结的一些笔记,我直接从word文档中拷贝过来的,有什么问题,希望大家指出,我们一起讨论。

 

 

 

SiteMesh笔记

 

SiteMesh 是什么?

SiteMesh用来装饰网页。使网页具有统一的布局。这对于实际项目有很大的帮助。SiteMesh是基于JavaJ2EEXML的开源框架,依赖于从Servlet 2.3版本里引入的新功能——过滤器(Filters),它的主要思想是装饰设计模式,把变化的和不变的分离开来,用不变的去修饰各种变化的内容。

SiteMesh通过拦截静态活或动态网页的request请求。从而处理网页,给网页加上自定义的装饰。

使用SiteMesh会不会影响网页的访问速度呢?siteMesh官网上说是基本不影响,因为SiteMesh的处理速度是非常快的。

还可以通过扩展SiteMesh来达到用户的需求。

 

 

 

使用SiteMesh

使用siteMesh的步骤为:

1.SiteMeshjar 包放到WEB-INF/lib目录下面。

2.编写网页装饰页面(decorator.html)。

3.web.xml文件中添加SiteMesh过滤器。

4.编辑需要装饰的web页面。

5.编辑装饰规则文件sitemesh.xml,即配置那些文件被哪个或哪些装饰文件装饰。放在WEB-INF/目录下。

 

 

 

 

 

Decorator Tags:

              1.<decorator:head/>插入原始页面(被包含页面)<head>标签中的内容,没有属性

 

              2.<decorator:body/>插入原始页面(被包含页面)<body>标签中的内容

                            注释:装饰jsp<body onload = "<decorator:getProperty property=’body.onload’/>">可以在装饰页

                                          body中使用如上语法来获得被装饰页面(被包含页面也就是原始页面)的事件

 

              3.<decorator:title [default = ""]/>插入被装饰页面的title标签中的内容

                            default属性:当没有在被装饰页面找到title中有内容时此值被插入

 

              4.<decorator:getProperty property = "" [default=""][writeEntireProperty=""]/>插入原始页面的property属性指定的同名的属性

                  property:指定哪个属性将要被插入

default:如果没有发现指定的属性,则插入此值

writeEntireProperty:表示是否将(空格 属性 = “属性名”)整个插入,允许时的值是trueyes1

 

                            下面是writeEntireProperty属性的一个例子

                            装饰页面: <body bgcolor = "White"<decorator:getProperty property = "body.onload" writeEntireProperty="true"/>

                            被装饰页面:<body onload = "document.someform.somefield.focus();">

                            经过SiteMesh装饰后的效果:<body bgcolor = "White" onload = "document.someform.somefield.focus();">

 

                  HtmlPage接口对此的解释为:sitemesh允许一个页面被装饰器装饰,也允许从中提取属性值

 

              5.<decorator:userPage id = ""/>实例化装饰器页面为Page对象,并赋值给一个变量

                            id属性是必须有的

 

 

 

Page Tags

              1.<page:applayDecorator name = "" [page = "" title = ""]>

 

</page:applayDecorator>

              应用一个装饰器到指定的内容,这个内容可能是被内联的一个页面,或者是page属性指定的任何一个页面

                            name:被包含页面要应用的那个装饰器的名字

page:被包含的页面

title:覆盖被包含页面的title标签的内容

 

              2.<page:param name = ""/>

解析一个属性到装饰器,这个属性会覆盖原有页面中的属性,此标签只能用于<page:applyDecorator>标签内容

                            name:指定哪个属性的值要被重写

 

 

 

 

SiteMesh  Demo

 

 

 

装饰页面:用来装饰web页面的页面

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

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

 

<html>

    <head>

       <title>装饰页面<decorator:title default="包含页的标题---title"/></title>

    </head>

 

    <body>

      

       -------原始页也就是包含页只有页头和页脚-------

       <br/>

       <br/>

       <br/>

      

       包含页面的body部分(实时改变页面)-----decorator.jsp

       <br/>

       <decorator:body/>========被包含页面的body部分

       <br/>

       <br/>

       <br/>

       -------原始页也就是包含页只有页头和页脚-------

    </body>

</html>

 

==============================================================

 

 

web.xml文件中添加SiteMesh过滤器

<!-- 定义SiteMesh的核心过滤器 -->

    <filter>

       <filter-name>sitemesh</filter-name>

       <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>

    </filter>

   

    <!-- 定义ActionContextCleanUp过滤器 -->

    <filter>

       <filter-name>struts-cleanup</filter-name>

       <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

    </filter>

   

    <!-- 定义SiteMesh过滤器链 -->

    <!-- 排在第一位的过滤器是:ActionContextCleanUp过滤器 -->

    <filter-mapping>

       <filter-name>struts-cleanup</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

   

    <!-- 排在第二位的过滤器是:SiteMesh的核心过滤器 -->

    <filter-mapping>

       <filter-name>sitemesh</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

   

    <filter-mapping>

       <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

===============================================================

 

 

 

 

编辑装饰规则文件decorator.xml

<!-- 装饰器配置文件 -->

<!-- defaultdir指定的装饰器页面所在路径 也就是decorator.jsp页面所在的路径-->

<decorators defaultdir="/decorator">

    <!-- excludes元素下指定的页面将不会由SiteMesh来装饰 -->

    <excludes>

    </excludes>

   

    <!-- 创建一个名为decorator的装饰器,该装饰器页面为decorator.jsp,

         用于装饰pattern指定的URL的所有页面-->

    <decorator name="decorator" page="decorator.jsp">

        <pattern>/*</pattern>

    </decorator>

   

</decorators>

 

============================================================

 

 

编辑需要装饰的web页面

<html>

    <head>

       <title>SiteMesh----main.jsp页面</title>

    </head>

 

    <body>

       被包含页面的body部分------main.jsp

      

    </body>

</html>

 

 

 

分享到:
评论

相关推荐

    SiteMesh教程及SiteMesh官方文档翻译

    ### SiteMesh教程及SiteMesh官方文档翻译 #### 使用SiteMesh简化网页布局 SiteMesh是一款用于Web应用程序中的页面布局和装饰的框架。它采用Decorator模式,通过过滤器(filter)拦截请求和响应,将不同的页面组件...

    sitemesh框架学习

    但是这些方法out了,学习了sitemesh之后你就会发现在页面中的头部和底部自动导入;这才是真技术。像frame、iframe只适合后台框架,include适合前台,不可能100个页面都用include。所以sitemesh是你最好的选择,把源...

    java sitemesh 页面框架

    Java Sitemesh是一个开源的页面布局和装饰框架,它的主要目标是帮助开发者统一网站的外观和感觉,提高代码复用性,并...学习和掌握Sitemesh能让你在开发Java Web应用时更加得心应手,提升项目的整体质量和用户体验。

    sitemesh

    **Sitemesh** 是一个广泛使用的开源Web应用框架,它主要功能是提供页面布局和装饰功能,用于统一网站的外观和感觉。Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的...

    sitemesh框架简单例子

    通过深入学习和实践这个“sitemesh框架简单例子”,你将能够熟练地运用Sitemesh来构建更加专业且美观的Web应用。 总的来说,Sitemesh是一个强大且灵活的工具,它简化了Web页面布局的管理,让开发者能够专注于业务...

    siteMesh demo+文档

    SiteMesh 是一个开源的Web应用程序布局和装饰框架,主要用于解决Web应用中的页面布局问题。它通过拦截HTTP请求,将页面内容与预定义的布局模板相结合,实现统一的页面头部、底部和侧边栏等元素,从而提高网站的整体...

    SiteMesh

    SiteMesh 是一个开源的Web应用程序框架,主要用于帮助开发者实现页面布局和装饰功能。它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中...

    页面装饰器(sitemesh)实例源代码

    页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得...通过实际操作和学习提供的`demo`,你可以进一步掌握Sitemesh的使用技巧,从而在自己的开发工作中游刃有余。

    sitemesh入门demo

    这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细讲解: 1. **安装与配置** - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以...

    SITE MESH学习笔记

    SiteMesh 是一个强大的网页布局和装饰框架,它的主要目的是为了分离网页的内容(content)和页面结构...通过学习和熟练使用SiteMesh,开发者可以更好地组织和管理页面结构,提升用户体验,同时降低维护成本。

    sitemesh-2.2.1.jar sitemesh-2.2.1.jar

    **sitemesh-2.2.1.jar** 是一个用于Web应用程序界面布局的开源框架,由OpenSymphony团队开发。Sitemesh的主要功能是提供页面...对于希望提升网站整体视觉效果的开发者来说,学习和掌握Sitemesh是一项非常有价值的技术。

    sitemesh学习资料

    SiteMesh 是一个开源的网页布局和装饰框架,主要用于Java Web应用程序,它可以帮助开发者实现页面的统一外观和感觉,以及提供了...对于希望优化Web应用界面设计和管理的开发者来说,学习和掌握SiteMesh是非常有价值的。

    sitemesh3官方下载包

    通过分析和运行这些示例,开发者可以快速理解和学习如何配置和使用Sitemesh3进行页面装饰。 4. **配置说明**:这部分通常是一份文档,详细解释了如何配置Sitemesh3以适应不同的Web应用环境。它可能包括XML配置文件...

    sitemesh3-demo

    【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地...通过学习和分析这些文件,你可以更深入地理解Sitemesh3的工作原理和使用方法,进一步提升你在Web开发中的布局和美化能力。

    Sitemesh学习文档

    Sitemesh是一个强大的Java Web应用程序框架,由OpenSymphony团队开发,主要目的是增强网页的可维护性和重用性。...这使得开发者可以更方便地管理...通过学习和应用Sitemesh,开发者可以更高效地构建和维护大型的Web项目。

    sitemesh.jar包

    sitemesh.jar包 sitemesh.jar 包sitemesh.jar 包sitemesh.jar包

    springMVC与sitemesh的结合

    而Sitemesh则是一个页面布局和装饰框架,主要用于处理Web应用中的页面布局问题,比如统一头部、底部和侧边栏,提升用户体验并简化开发。 将Spring MVC与Sitemesh结合使用,可以实现更高效的Web应用开发。以下是对这...

Global site tag (gtag.js) - Google Analytics