`

sitemesh

 
阅读更多
1.sitemesh简介

2.与strust tiles比较

3.基本原理

4.简单例子

5.总结

6.参考资料

1.sitemesh简介

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

2.与strust tiles比较

     从使用角度来看,tiles似乎是sitemesh标签<page:applydecorator>的一个翻版。其实sitemesh 最强的一个特性是sitemesh将decorator模式用在过滤器上。任何需要被装饰的页面都不知道它要被谁装饰,所以它就可以用来装璜来自php、 asp、cgi等产生的页面了。你可以定义若干个装饰器,根据参数动态地选择装饰器,产生动态的外观以满足你的需求。它也有一套功能强大的属性体系,它能 帮助你构建功能强大而灵活的装饰器。相比较而言,在这方面tiles就逊色许多。

3.基本原理

    一个请求到服务器后,如果该请求需要sitemesh装饰,服务器先解释被请求的资源,然后根据配置文件获得用于该请求的装饰器,最后用装饰器装饰被请求资源,将结果一同返回给客户端浏览器。

下边是由jsp和cgi产生的两个页面,它们通过sitemesh装饰后,形成了一致的用户界面。

4.简单例子

   环境说明:

   windows2k+、tomcat4.0+

1.安装:

    将sitemesh-2.1.jar复制到lib目录下;修改web.xml文件,也就是在web.xml中加入粗倾体标记的部分;

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

<! doctype web-app public "-//sun microsystems, inc.//dtd web application  2.3//en" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<filter>

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

         <filter-lass>com.opensymphony.module.sitemesh.filter.pagefilter</filter-class></filter>

<filter-mapping>

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

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

</filter-mapping>

</web-app>

2.建立一个目录,名字叫decorators,当然你也可以取别的,用于放装饰器(也就是一个使用了sitemesh标签的jsp文件)用;

3.定义一个你的模板并把它放到decorators目录下,我的文体名称叫:mymain.jsp文件内容如下:

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

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

<html>

<head>

<meta http-equiv="content-language" content="zh-cn">

<meta http-equiv="content-type" content="text/html;  charset=gb2312">

<meta name="generator" content="microsoft frontpage 4.0">

<meta name="progid" content="frontpage.editor.document">

<title>ap - <decorator:title default="welcome to  architecture pub!" />

</title>

<decorator:head />

</head>

< body><table border="0" cellpadding="2" width="100%" height= "151">  <tr>    <td width="20%" height="74">      <p  align="center"><font color="#000080" size="5">test sitemesh< /font></td>    <td width="73%" height="74"></td>   </tr>  <tr><td width="20%" height="28" bgcolor="#f3f3f3"  valign="top" >

<page:applydecorator page="/menu.jsp" name="panel" />

</td>    <td width="73%" height="28" bgcolor="#bed6fa">

<decorator:body />

< /td>  </tr>  <tr>    <td width="100%" height="31"  colspan="2" bgcolor="#f1f0ed">      <p align="center">powered  by gagaghost</td>  </tr></table></body>< /html>

说明:

<decorator:title default="welcome to test sitemesh!" />:读取被装饰页面的标题,并给出了默认标题。

<decorator:head />:读取被装饰页面的<head>中的内容;

<page:applydecorator page="/menu.jsp" name="panel" />:把menu.jsp文件用 panel指定的装饰器装饰,并把结果插入到该位置;

<decorator:body />:读取被装饰页面的<body>中的内容;

当然还有很多的标签,这里不再详细描述。

4.在docorators.xml文件里配置刚写好的模板mymain.jsp,内容如下:

<?xml version="1.0" encoding="iso-8859-1"?>

<decorators defaultdir="/decorators">

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

        <pattern>/*</pattern>

</decorator>

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

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

</decorators>

这里我是把对所有的请求都用mymail.jsp来装饰。

5.好了,run一下你的“小板凳”!你会看到如下结果:

5.总结

     使用sitemesh给我们带来的是不仅仅是页面结构问题,它的出现让我们有更多的时间去关注底层业务逻辑,而不是整个页面的风格和结构。它让我们 摆脱了大量用include方式复用页面尴尬局面,它也提供了很大的灵活性以及给我们提供了整合异构web系统页面的一种方案。我们期望它在未来的版本中 会有更多的特性出现。

6.参考资料

http://www.opensymphony.com/
分享到:
评论

相关推荐

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

    页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得开发者可以方便地实现统一的页面头部、尾部、侧边栏等元素,从而提高网站的整体风格一致性。在本实例中,我们...

    SiteMesh教程及SiteMesh官方文档翻译

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

    sitemesh框架简单例子

    Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和感觉。这个框架的主要功能是将页面的主体内容与页眉、页脚、侧边栏等通用部分分离,使得在大量网页中保持一致的设计风格变得...

    siteMesh demo+文档

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

    java sitemesh 页面框架

    Java Sitemesh是一个开源的页面布局和装饰框架,它的主要目标是帮助开发者统一网站的外观和感觉,提高代码复用性,并简化页面的复杂性。Sitemesh通过将页面分为内容区域和装饰模板来实现这一目标,使得开发者可以...

    sitemesh-2.2.1.jar sitemesh-2.2.1.jar

    **sitemesh-2.2.1.jar** 是一个用于Web应用程序界面布局的开源框架,由OpenSymphony团队开发。Sitemesh的主要功能是提供页面装饰能力,它可以帮助开发者统一网站的外观和感觉,实现页面模板和内容的分离。通过在...

    SiteMesh

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

    sitemesh3-demo

    【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...

    sitemesh3官方下载包

    **Sitemesh3** 是一个开源的网页布局和装饰框架,用于Java Web应用程序。它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第...

    sitemesh jar包机tld文件

    在Java Web开发中,SiteMesh是一个非常流行的页面布局框架,它可以帮助开发者轻松地实现网站的统一外观和感觉,以及提供页面装饰功能。标题中的“sitemesh jar包”指的是SiteMesh框架的核心库文件,它是SiteMesh功能...

    springMVC与sitemesh的结合

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

    Sitemesh 3 的使用及配置

    ### Sitemesh 3 的使用及配置 #### 一、Sitemesh 3 简介 Sitemesh 是一个非常实用的Web页面布局与修饰框架,它通过Servlet中的Filter来实现网页的装饰功能,类似于ASP.NET中的“母版页”技术。这种技术允许开发者...

    freemarker 与sitemesh 整合例子

    Freemarker和Sitemesh是两个在Web开发中常用的开源技术。Freemarker是一个模板引擎,主要用于生成动态HTML或其他文本格式的输出,而Sitemesh则是一个页面布局和装饰框架,用于统一网站的外观和感觉。这两者的整合...

    sitemesh技术的应用.doc

    标题:Sitemesh技术的应用 描述与标签:Sitemesh技术的应用 Sitemesh技术是Web开发领域中一种用于页面装饰的重要工具,尤其在Java Web应用程序中被广泛应用。其核心功能在于能够统一网站的外观风格,使不同功能...

    spring mvc sitemesh velocity整合

    在本项目中,Spring MVC与两个额外的技术——Sitemesh和Velocity进行了整合,增强了应用的模板渲染和页面布局能力。 Sitemesh 是一个开源的Web应用装饰器框架,主要用于统一网站的页面布局和样式。通过Sitemesh,...

    sitemesh布局知识点汇总

    ### Sitemesh布局知识点汇总 #### 一、Sitemesh简介 Sitemesh是一个非常实用且功能强大的Web页面布局和装饰框架,适用于多种Web应用程序,包括但不限于Java(JSP)、PHP、ASP等技术栈下的应用。它能够有效地帮助...

    SiteMesh教程.pdf

    SiteMesh是一种用于Java Web应用的装饰器设计模式框架,主要通过拦截Web页面请求,动态地将装饰页面如头部(header)、底部(footer)、样式表(stylesheet)和脚本文件(scripts)等页面元素与实际页面组合在一起,...

    sitemesh-3.0.1-javadoc

    SiteMesh是一个网页布局和装饰框架以及Web应用程序集成框架,可帮助创建由页面组成的网站,这些页面需要一致的外观,导航和布局方案。 SiteMesh会拦截对通过Web服务器请求的任何静态或动态生成的HTML页面的请求,...

Global site tag (gtag.js) - Google Analytics