zoukankan      html  css  js  c++  java
  • 简化网站开发:SiteMesh小工具

    在一个站点的制备,几乎所有的页面将具有相同的部分。导航栏例如,顶,每一页都是一样的,在底部的版权声明,每一页还都是一样的。

    因此,在顶部导航栏的准备。第一种方法是直接复制的所有导航栏的代码,这种方法是在发育早期easy但后期维护的噩梦,添加一个button,所有的页面都要改动。非常麻烦。

    另外一种方法是将顶部导航栏专门写到一个文件里,全部的页面include这个文件。这样每一个页面都要写一个include语句。后期改动仅仅要改一个文件就能够了。可是这样的方法写出来的导航栏文件它不是一个完整的网页。而且每一个文件都要写上include语句,还是比較麻烦的。

    为了让这样的页面的编写更加简单。SiteMesh应运而生。

    SiteMesh通过装饰器模式攻克了这个问题。

    以下就介绍装饰器的使用方法。

    安装方法

    第一步将sitemesh.xxx.jar放在/WEB-INF/lib中。

    第二步在web.xml中增加SiteMesh的过滤器。

    <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>

    须要注意的是。假设你要和struts配合使用。那么filter-mapping要在struts之后,这样才干依照文件名称进行装饰,否则是依据action名称进行装饰。另外还要在filter-mapping中增加下面三行,目的是让struts在訪问jsp之前对文件进行装饰。假设不加的话是看不到装饰效果的。

    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>

    第三步新建装饰器定义文件。文件的位置在/WEB-INF/decorators.xml。

    内容例如以下:

    <?xml version="1.0" encoding="UTF-8"?>
    <decorators>
    </decorators>

    这样SiteMesh插件就装好了。

    插件的使用

    首先编写一个很easy的装饰器文件,它的作用是在页面的头尾分别加上header和footer字样。当中 exttt{decorator:body}的作用是将真正的内容引进该文件。

    <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
    <html>
    <head><title></title></head>
    <body>
    header
    <decorator:body/>
    footer
    </body>
    </html>

    第二步在decorators.xml中声明该装饰器。

    <?

    xml version="1.0" encoding="UTF-8"?

    > <decorators defaultdir="/WEB-INF/decorators"> <decorator name="basic-theme" page="basic-theme.jsp"> <pattern>/test.jsp</pattern> </decorator> </decorators>

    因为改动了web.xml,所以须要重新启动server才干看到效果。你会看至test.jsp头部和尾部添加header和footer。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    深拷贝浅拷贝
    计算属性和监听,computed,watch
    字面量的引用与使用
    MYSQL 触发器
    JavaScript寻找对象方式
    JavaScript事件传播
    HTML 绑定事件
    JavaScript 中的 String()方法
    JavScript re模块
    JavScript Math函数的使用方法
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4664475.html
Copyright © 2011-2022 走看看