`
flyer2010
  • 浏览: 355934 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SiteMesh 2学习(1):入门简介和简单实例

阅读更多
SiteMesh简介
* 资料参考:
SIteMesh官方地址:http://www.opensymphony.com/sitemesh/
SIteMesh下载地址:http://java.net/downloads/sitemesh/

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

* SiteMesh拦截请求不仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。

* SiteMesh是由Java 2 with Servlet, JSP and XML等技术来实现的,这使得他能很好地与J2EE应用结合,但它能与其他Web应用很好地集成,例如CGI (Perl/Python/C/C++/etc), PHP, Cold Fusion,等

* SiteMesh是很容易扩展的,并且他的设计方式使得它很容易实现自定义扩展的需求。

SiteMesh原理

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

图例:2个页面是从不同的系统产生的(一个jsp,一个CGI),两个页面都被解析了并且有一个共同的装饰器产生到最终的页面,以便显示一致的风格。




SiteMesh简单例子
官网demo:http://java.net/downloads/siteme ... /sitemesh-blank.war,下载后直接运行。
手动建立demo步骤:
1.拷贝sitemesh-2.4.2.jar into [web-app]/WEB-INF/lib.
2.工程下建立[web-app]/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>

3.建立文件 [web-app]/WEB-INF/sitemesh.xml ,包含如下内容:
<sitemesh>  
<property name="decorators-file" value="/WEB-INF/decorators.xml" />  
<excludes file="${decorators-file}" />  
<page-parsers>       
<parser content-type="text/html"            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />        <parser content-type="text/html;charset=ISO-8859-1"          class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />  
</page-parsers>  
<decorator-mappers>       
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">        
  <param name="config" value="${decorators-file}" />     
  </mapper>  
</decorator-mappers>
</sitemesh>
4.修改[web-app]/WEB-INF/web.xml ,在 <web-app>标签内增加如下内容:
<filter>  
<filter-name>sitemesh</filter-name>  
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>  
<filter-name>sitemesh</filter-name>  
<url-pattern>/*</url-pattern>
</filter-mapping>
到此,你的工程已经建立配置好了sitemesh,你现在可以建立装饰器应用到你的web应用了。

二、
装饰器是值那些装饰原始的请求页面。大部分的装饰器包括:
meta tags (keywords, description, author) :meta标签
stylesheet (CSS) 样式
header 头部
navigation 导航
footer 底部
copyright notice 版权信息
  • 大小: 97.3 KB
分享到:
评论

相关推荐

    SiteMesh入门学习

    SiteMesh入门学习,很好的学习总结,让你在短时间里掌握sitemesh

    struts2 +sitemesh:实例学习

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

    sitemesh入门demo

    sitemesh入门demo。博客 Sitemesh入门和使用笔记 对应源码

    struts2-sitemesh_入门收集

    struts2-sitemesh_入门收集struts2-sitemesh_入门收集

    Struts2整合SiteMesh技巧

    要使用Sitemesh需要包含Freemark,Sitemesh和Sitemesh插件库文件。 配置过滤器 如果需要使用Freemark模板文件作为装饰器文件,需要在web.xml文件中添加如下配置: xml 代码 &lt;filter&gt; &lt;filter-name&gt;struts-clean...

    MiddleGen+Sitemesh.zip

    201.2.0/middlegenide_1.2.0.zip/download?use_mirror=nchc 下载文件:middlegenide_1.2.0.zip (7)Sitemesh: 本书使用版本:2.2 官方网站:http://www.opensymphony.com/sitemesh/index.html 下载页面:...

    sitemesh 完美合集 4个资料和jar文件

    Sitemesh简介: SiteMesh是一个Web页面布局修饰框架, 用于构建包含大量页面, 需要一致的外观样式(look/fell), 导航和布局机制的大型网站. sitemesh应用Decorator模式,用filter截取request和response,把页面组件...

    sitemesh框架学习

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

    sitemesh框架简单例子

    很简单的sitemesh入门教程,希望对大家有所帮助

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

    用sitemesh页面装饰器,将大名鼎鼎的开源即时通讯服务器openfire中运用的,布局页面抽取出来。MyEclipse中可以直接部署的代码。

    sitemesh装饰器入门

    NULL 博文链接:https://mgxy123.iteye.com/blog/1565892

    sitemesh的使用和例子

    这个是sitemesh在项目中的应用,还有相关的jar包和资料,最重要的还有例子。

    sitemesh2.4.2 weblogic bug修改

    sitemesh 2.4.2 weblogic 报错:Didn't meet stated Content-Length

    sitemesh

    sitemesh 装饰 母版

    siteMesh使用示例

    siteMesh使用示例:登录、注册页面

    SiteMesh教程及SiteMesh官方文档翻译

    web布局框架 SiteMesh教程及SiteMesh官方文档翻译

    siteMesh demo+文档

    siteMesh demo siteMesh使用文档

    sitemesh入门教材

    sitemesh 入门教材 对初学者很有用,里边有实例 freemarker Java

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    sitemesh学习资料

    sitemesh学习资料sitemesh学习资料

Global site tag (gtag.js) - Google Analytics