咸鱼的翻身技术

JAVA/JAVASCRIPT

初尝Sitemesh

存在问题:
不想用include来进行页面布局

解决办法:
使用sitemesh2.4.1版本

解决过程:
1,去sitemesh官网下最新版本(文中使用2.4.1版本),将sitemesh-2.4.1.jar放到/WEB-INF/lib下
2,根据快速安装文档配置文档
  a,在/WEB-INF下增加配置文件,我选择了使用sitemesh.xml+decorators.xml方式,然后配置你要装饰的jsp,我目前用的很简单,就这样写了

<decorators defaultdir="/decorators">
    
<decorator name="layout" page="layout.jsp">
          
<pattern>/*</pattern>
    
</decorator>
</decorators>


  b.在web.xml中加入如下代码,只需将filter和filter-mapping的配置写在struts前面即可,我的struts版本struts2-core-2.1.2
    
    <filter>
        
<filter-name>sitemesh</filter-name>
        
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
    
</filter>
    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    
</filter>

    
<filter-mapping>
        
<filter-name>sitemesh</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>*.action</url-pattern>
        
<dispatcher>REQUEST</dispatcher>
        
<dispatcher>INCLUDE</dispatcher>
    
</filter-mapping>
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>*.jsp</url-pattern>
        
<dispatcher>REQUEST</dispatcher>
        
<dispatcher>INCLUDE</dispatcher>
    
</filter-mapping>
 
   c,编写相应的layout.jsp,这个jsp里面,最重要的无非是标签<decorator:xxx xxx="xxx"/>的写法
   d,重启服务器

配置TIPS:
1,新版本的sitemesh不需要sitemesh和struts的plugin包,而且sitemesh的项目里没有提供plugin包下载,极其恶心,需要的可以在这里下载
2,网上能狗到的,都要在web.xml里做一个clean-up操作,而且使用的sitemesh的filter类也和最新版本的不一致,目前还不知道那些filter类的关系

使用心得
1,终于告别那个恶心的include来做页面布局了
2,sitemesh很简单,很容易上手
3,sitemesh和freemaker/velocity的差异:一个是做view+view的结合,一个是model和view的结合,解决的问题不一样,自然,这2种框架是可以配合使用的,就是相应的配置需要做调整
4,sitemesh的装饰配置文件是可以随时修改的,不需要重启服务器

存疑
1,如果碰上大规模并发访问的时候,sitemesh的性能如何?
2,ie和fx访问的时候,ie下能给html文件装饰,fx不可以的造成原因是?

posted on 2009-11-23 18:33 hopesfish 阅读(934) 评论(0)  编辑 收藏 引用 所属分类: 胡搞乱搞

只有注册用户登录后才能发表评论。