SiteMesh详解

来源:互联网 发布:面板数据分析什么 编辑:程序博客网 时间:2024/06/06 17:22

1.Sitemesh简介

        Sitemesh是一个网络布局和修饰的框架,基于filter技术.
      作用:利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的,减少重复代码的编写.(可能看到这儿不是很清楚,下面配几张图加以解释).
     举个应用的场景: 点击下图上方的菜单.在浏览器的下方会显示出相应的界面.此时你会发现上面菜单栏的内容是一样的,而下面显示的内容则会根据你所点击的菜单发生变化.按照常规思路,你会写很多不同的jsp页面,然后根据菜单的点击而跳转到不同的页面.但这样写你会发现一个问题,代码大量冗余.针对这种现象,人们编写了sitemesh框架.在这种框架下,关于菜单栏的代码只要写一次就ok了,大幅度降低了代码量.
     



2.Sitemesh环境搭建

      第一步:导入jar包(我当时的jar包版本是sitemesh-2.4.1.jar   不会导包的建议百度)
               jar包下载地址:链接: https://pan.baidu.com/s/1pKKxl6z 密码: smw8
     第二步:修改WEB-INF目录下的web.xml,添加一个filter.(上文中也提到过sitemesh框架就是基于filter). filter代码示例如下:
  <filter>     <filter-name>sitemesh</filter-name>     <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>  </filter>  <filter-mapping>     <filter-name>sitemesh</filter-name>     <url-pattern>/*</url-pattern>  </filter-mapping>

     第三步:在WEB-INF下添加decorators.xml文件,进行一系列的配置.(也就是要修饰的是哪些页面以及修饰页面的位置和名称)
          配置中一些参数的意义: 
               defaultdir="/decorators"表示修饰文件的位置
               page="main.jsp"表示修饰文件名
               /*表示修饰所有的页面

<?xml version="1.0" encoding="ISO-8859-1"?><decorators defaultdir="/decorators">    <decorator name="main" page="main.jsp">        <pattern>/*</pattern>    </decorator></decorators>

     第四步:既然要修饰页面,就要有修饰的模板.所以第四步的任务就是建立模板(也就是上文所说到的修饰文件).步骤三中已经说到修饰文件的位置名称问题.所以按照步骤三中的配置文件,将修饰文件创建出来.本文中,在WEB-INF下创建decorators文件夹,在文件夹里创建main.jsp.
          此处要说明的一点,这些文件或文件夹的名称是可以改变的,前提是在  decorators.xml将参数配置好,具体参考步骤三.
         main.jsp的具体实现在这里就不给出了.大家可以依靠自己的需求进行编辑.


3.Sitemesh原理

   在这里简单的介绍一下原理吧,并不深入探讨.(并没有啥意义)
    首先请求被Sitemesh的filter拦截,并把数据包装成一个page对象,接着去查询decorator.xml文件,如果判断出该请求的页面为所修饰的页面,则应用装饰器,如果不是的话,则发送的是没经过修饰的页面.......
       emmmm........................
   
        


原创粉丝点击