总结一下用Sitemesh做网页布局的经验

    前一段时间需要用到Sitemesh做网页的布局,于是查找资料学习了一下,查到的都是入门学习一类简单的静态页面整合,而且几乎都一样。但还好在某个角落里找到了一点有用的东西,是对于sitemesh标签的介绍,不过...我忘记地址了- -#

    先说下我的需求:一个页面分为上下两部分,一个通顶,和下面的查询列表显示,通顶和列表显示都是动态的。

补述:之前用的是frame框架,但是样式上很不协调,下半部会出现滚动条,于是选择采用sitemesh;查找到的资料都是为页面添加静态修饰,而没有一个添加动态修饰的例子。

    准备工作:

    1、先下载sitemesh。地址:http://www.opensymphony.com/sitemesh/download.action

目前最新的版本是2.4.1   

    2、将sitemesh-2.4.1.jar拷贝到WEB-INF/lib下

    3、在web.xml中配置SiteMeshFilter:


    sitemesh
    com.opensymphony.sitemesh.webapp.SiteMeshFilter
  
  
    sitemesh
    *
  
 

 

    4、建立装饰器页面在/decorators文件夹下  #:这里我建立了两个装饰器页面,一个作为主装饰器,一个作为通顶的装饰器。

    panel.jsp //动态通顶的装饰器

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

 

    main.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page" %>


    
    
        
        <decorator:title default="配置默认的title"/>    
    
    
     
        
     
        
    
 

    5、建立WEB-INF/decorators.xml描述装饰页面:

 





  

  


    在一般情况下,如果你的所有页面都需要被装饰,那么可以写成

 


       
           *
       
       

    而我只需要部分页面被修饰,如果没有配pattern,sitemesh在过滤页面的时候貌似会检查页面的某个属性:即


   如果存在,则根据content属性的值,为该页面匹配装饰器。所以只要在需要被装饰的页面的head中添加

    就可以自动被装饰了,个人认为还是这种方法比较方便灵活。

    由于被装饰的是一个.do的动态路径,没法给出例子,不过已成功用在项目中。

 

                                                                          有问题欢迎留言讨论,转载请注明----

你可能感兴趣的:(.K@JAVA,JSP,Web,XML,XHTML,框架)