sitemesh装饰器入门

一、拷贝sitemesh-2.4.1.jar(可以去官网下)到项目中的lib下

二、在web.xml中添加sitemesh的过滤器

	<!-- 配置sitemesh -->
	<filter>
	  <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>

三、在WEB-INF下建一个装饰器配置文件,命名为:decorators.xml,默认与web.xml同级,若改变目录,则需要拷贝sitemesh.xml来进行修改。

四、在web项目中添加一个存放装饰器的文件夹,如decorators,页面见源代码。并在decorators.xml中进行配置,配置如下:

<!-- 排除一些页面不使用模版 -->
<excludes>
       <pattern>/login.jsp</pattern>
       <pattern>/login/*</pattern>
</excludes>
    
<!-- 构造一个模版页面装饰器 -->
<decorator name="main" page="main.jsp">
    <pattern>/*</pattern>
</decorator>
    
<decorator name="page" page="page.jsp"></decorator>

五、部署并运行

 

拷贝一下网上的资源:

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装饰后,形成了一致的用户界面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值