[轉(zhuǎn)]使用sitemesh建立復(fù)合視圖1.hello

          轉(zhuǎn)自:http://docs.huihoo.com/java/sitemesh/index.html

          sitemesh是opensymphony團(tuán)隊開發(fā)的j2ee應(yīng)用框架之一,旨在提高頁面的可維護(hù)性和復(fù)用性。opensymphony的另一個廣為人知的框架為webwork是用作web層的表示框架。他們都是開源的,可以在www.sf.net下找到。

          應(yīng)用于以下大項目的例子:http://opensource.thoughtworks.com/projects/sitemesh.html

          sitemesh應(yīng)用Decorator模式,用filter截取request和response,把頁面組件head,content,banner結(jié)合為一個完整的視圖。通常我們都是用include標(biāo)簽在每個jsp頁面中來不斷的包含各種header, stylesheet, scripts and footer,現(xiàn)在,在sitemesh的幫助下,我們可以開心的刪掉他們了。如下圖,你想輕松的達(dá)到復(fù)合視圖模式,那末看完本文吧。

          hello 例子:
          步驟1:在WEB-INF/web.xml中copy以下filter的定義:
          <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>
          </filter-mapping>

          <taglib>
            <taglib-uri>sitemesh-decorator</taglib-uri>
            <taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location>
          </taglib>

          <taglib>
            <taglib-uri>sitemesh-page</taglib-uri>
            <taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location>
          </taglib>

          2.copy所需jar和dtd文件至相應(yīng)目錄,訪問opensymphony.sourceforge.net的cvs以獲取sitemesh最新版本。
          sitemesh.jar WEB-INF/lib
          sitemesh-decorator.tld WEB-INF
          sitemesh-page.tld WEB-INF

          3.建立WEB-INF/decorators.xml 描述定義幾個裝飾器頁面 (可仿照sitemesh例子)。
          <decorators defaultdir="/decorators">
              <decorator name="main" page="main.jsp">
                  <pattern>*</pattern>
              </decorator>
          </decorators>
          這里只定義了一個 main 裝飾器。

          4.建立裝飾器頁面/decorators/main.jsp,就是一個頁面的大體框架,相當(dāng)于頁面模板,讓其他頁面都使用這個模板。
          <%@ page contentType="text/html; charset=GBK"%>
          <%@ taglib uri="sitemesh-decorator" prefix="decorator" %>

          <html>
            <head>
              <title><decorator:title default="裝飾器頁面..." /></title>
              <decorator:head />
            </head>
            <body>
              sitemesh的例子<hr>
              <decorator:body />
              <hr>chen56@msn.com
            </body>
          </html>
          5.建立一個的被裝飾的頁面 /index.jsp(內(nèi)容頁面)
          <%@ page contentType="text/html; charset=GBK"%>
          <html>
            <head>
              <title>Agent Test</title>
            </head>
            <body>
              <p>本頁只有一句,就是本句.</p>
            </body>
          </html>
          最后訪問index.jsp,將生成頁面。
          ------------------------------------------------------------------------------------------
          簡單地改了改sitemesh自帶的例子sitemesh-example

          /Files/hijackwust/sitemeshHelloWorld.rar

          posted on 2007-09-17 20:41 hijackwust 閱讀(305) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆檔案(57)

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 车险| 威信县| 邵阳县| 繁峙县| 沭阳县| 合阳县| 雷州市| 永宁县| 陆良县| 博白县| 房山区| 昔阳县| 泸西县| 龙海市| 商水县| 周口市| 定安县| 大厂| 古交市| 拜泉县| 衡阳县| 泽库县| 锦屏县| 新晃| 泸西县| 岳阳市| 宜春市| 宜兰县| 察隅县| 印江| 广东省| 岢岚县| 电白县| 靖西县| 都兰县| 连平县| 象山县| 梓潼县| 利津县| 梁平县| 本溪市|