本文共 1930 字,大约阅读时间需要 6 分钟。
SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。
SiteMesh框架是OpenSymphony团队开发的一个非常优秀的页面装饰器框架,它通过对用户请求进行过滤,并对服务器向客户端响应也进行过滤,然后给原始页面加入一定的装饰(header,footer等),然后把结果返回给客户端。通过SiteMesh的页面装饰,可以提供更好的代码复用,所有的页面装饰效果耦合在目标页面中,无需再使用include指令来包含装饰效果,目标页与装饰页完全分离,如果所有页面使用相同的装饰器,可以是整个Web应用具有统一的风格。
只有Alpha2版本而且很久没更新了,它号称性能快3倍内存少1倍。
另外,Atlassian公司因为在自己的产品中使用了SiteMesh2,所以后来也一直有维护,出到了2.5-atlassian-9版,不过不在maven中央库中,可以在下载。
在pom.xml中添加如下:
opensymphony sitemesh 2.4.2 runtime
在web.xml中添加过滤器:
sitemesh com.opensymphony.module.sitemesh.filter.PageFilter sitemesh /*
在WEB-INF下新建decorators.xml文件:
/static/* /*
理论上SiteMesh只会搞那些MIME type为html的页面,但在配置里先exclude掉一些静态内容和API的路径会更省心。
在decorators.xml中定义了一个装饰页面default.jsp:
< %@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> My Site - <decorator:title default="Welcome!" />
装饰模板中可以使用的Sitemesh标签有:
创建test.jsp如下:
Hello world hello world.
访问test.jsp页面,查看源代码会显示如下:
My Site - Hello world hello world.
转载地址:http://zmnpl.baihongyu.com/