<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    使用SiteMesh裝飾頁面

    Posted on 2008-03-18 16:08 flustar 閱讀(2101) 評論(0)  編輯  收藏 所屬分類: SiteMesh
     

    SiteMesh框架是OpenSymphony團隊開發的一個非常優秀的頁面裝飾器框架,它通過對用戶請求進行過濾,并對服務器向客戶端響應也進行過濾,然后給原始頁面加入一定的裝飾(header,footer),然后把結果返回給客戶端。通過SiteMesh的頁面裝飾,可以提供更好的代碼復用,所有的頁面裝飾效果耦合在目標頁面中,無需再使用include指令來包含裝飾效果,目標頁與裝飾頁完全分離,如果所有頁面使用相同的裝飾器,可以是整個Web應用具有統一的風格。

    SiteMesh使用很簡單,具體有以下幾步:

    1) 拷貝 sitemesh-2.3.jar [web-app]/WEB-INF/lib. 

    2) 在[web-app]/WEB-INF/新建一個decorators.xml文件,包含以下內容

    <decorators>

    </decorators>

           3)可選項,在[web-app]/WEB-INF/建立一個sitemesh.xml文件,內容如下:

    <sitemesh>

        <property name="decorators-file" value="/WEB-INF/decorators.xml"/>

        <excludes file="${decorators-file}"/>

        <page-parsers>

            <parser default="true" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

            <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

            <parser content-type="text/html;charset=gbk" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>

        </page-parsers>

        <decorator-mappers>

            <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">

                <param name="config" value="${decorators-file}"/>

            </mapper>

        </decorator-mappers>

    </sitemesh>

    4)[web-app]/WEB-INF/web.xml添加以下內容:

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

           <dispatcher>REQUEST</dispatcher>

            <dispatcher>FORWARD</dispatcher>

            <dispatcher>INCLUDE</dispatcher>

        </filter-mapping>

    一個簡單的例子

    1)[web-app]下創建一個decorators文件夾,在該文件下再創建一個裝飾頁面main.jsp,內容如下:

    <%@ page contentType="text/html; charset=GBK"%>

    <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>

    <html>

        <head>

           <title><decorator:title default="第一個裝飾器頁面"/></title>

           <decorator:head/>

        </head>

        <body>

           SiteMesh快速入門<hr>

           <decorator:body />

           <hr>

           <div style="font:9pt" align="center">SiteMesh快速入門</div>

        </body>

    </html>

    2)創建一個目標頁面index.jsp,內容如下:

    <%@ page contentType="text/html; charset=GBK"%>

    <html>

     <head>

        <title>第一次使用SiteMesh</title>

     </head>

     <body>

        <h3>使用SiteMesh有什么好處?</h3>

        <li>目標頁面和裝飾頁面完全分離</li>

        <li>做到真正的頁面復用</li>

        <li>更容易實現統一的網站風格</li>

     </body>

    </html>

    3)decorators.xml中加入以下內容:

    <?xml version="1.0" encoding="GBK"?>

    <decorators defaultdir="/decorators">

        <!-- 此處用來定義不需要過濾的頁面 -->

        <exculdes>

        </exculdes>

        <!-- 用來定義裝飾器要過濾的頁面 -->

        <decorator name="main" page="main.jsp">

            <pattern>/*</pattern>

        </decorator>

    </decorators>

    4)發布運行,結果如下:


    如果想了解更多關于
    SiteMesh的知識可參考官方文檔和下面這篇文章:http://www.cjsdn.net/post/view?bid=29&id=178862


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 146, comments - 143, trackbacks - 0, articles - 0

    Copyright © flustar

    主站蜘蛛池模板: 国产成人无码综合亚洲日韩 | 亚洲一级毛片免费在线观看| 花蝴蝶免费视频在线观看高清版| 亚洲精品成人区在线观看| 在线亚洲v日韩v| 又粗又大又猛又爽免费视频 | 亚洲国产AV无码专区亚洲AV| 中国一级毛片免费看视频| 三上悠亚亚洲一区高清| 国产在线观看免费av站| 久久久综合亚洲色一区二区三区| 特级无码毛片免费视频尤物| 久久精品国产99精品国产亚洲性色| 很黄很污的网站免费| 久久久国产精品亚洲一区| 青青青国产在线观看免费| 亚洲宅男精品一区在线观看| 日韩激情无码免费毛片| 四虎影视久久久免费观看| 伊伊人成亚洲综合人网7777| 无码一区二区三区免费| 四虎亚洲精品高清在线观看| 啊v在线免费观看| 三级毛片在线免费观看| 久久综合亚洲鲁鲁五月天| 四虎影院免费在线播放| 国产97视频人人做人人爱免费| 亚洲av永久无码精品网站 | 免费无码又爽又刺激高潮 | 亚洲成电影在线观看青青| 性一交一乱一视频免费看 | 久操视频在线免费观看| xxx毛茸茸的亚洲| 亚洲成a人片在线播放| 久久国产精品免费网站| 亚洲精品无码永久在线观看男男| 国产国拍亚洲精品福利| 67pao强力打造高清免费| 羞羞网站免费观看| 久久精品九九亚洲精品| 亚洲av午夜精品一区二区三区|