sitemesh是一種頁面裝飾技術:它通過過濾器(filter)來攔截頁面訪問,據被訪問頁面的url找到合適的裝飾模板等等,感興趣的朋友可以了解下哦
一,基本概念
1,sitemesh是一種頁面裝飾技術 :
1 :它通過過濾器(filter)來攔截頁面訪問
2 :根據被訪問頁面的url找到合適的裝飾模板
3 :提取被訪問頁面的內容,放到裝飾模板中合適的位置
4 :最終將裝飾後的頁面傳送給客戶端。
2,在sitemesh中,頁面分為兩種:裝飾模板和普通頁面。
1)裝飾模板,是指用於修飾其它頁面的頁面。
2)普通頁面,一般指各種應用頁面。
3,接下來,我們通過乙個簡單的例子來說明一下sitemesh修飾網頁的基本原理。
二,模板修飾網頁的原理
通過sitemesh的註冊機制,告訴sitemesh,當訪問該路徑時使用***模板(假定使用前面那個模板)來修飾被訪問頁面。
三,sitemesh的配置與使用1)web-inf/web.xml中加入filter定義與sitemesh的taglib定義
複製**
**如下:
sitemesh
com.opensymphony.module.sitemesh.filter.pagefilter
/*
sitemesh-decorator
/web-inf/sitemesh-decorator.tld
sitemesh-page
/web-inf/sitemesh-page.tld
2)建立web-inf/decorators.xml,在該檔案中配置有哪些模板,以及每個模板具體修飾哪些url,另外也可以配置哪些url不需要模板控制 , decorators.xml的乙個例子如下:
複製**
**如下:
/login*
/*/showinfo.jsp*
/mymodule/greatwalldetailaction.do*
3)我們看乙個修飾模板的例子
複製**
**如下:
hello world
4)我們看乙個被修飾的頁面的例子:
複製**
**如下:
decorated page goes here.
5)我們看一下裝飾模板中可以使用的sitemesh標籤
取出被裝飾頁面的head標籤中的內容。
取出被裝飾頁面的body標籤中的內容。
取出被裝飾頁面的title標籤中的內容。default為預設值
取出被裝飾頁面相關標籤的屬性值。
writeentireproperty表明,是顯示屬性的值還是顯示「屬性=值」
html標籤的屬性
body標籤的屬性
meta標籤的屬性
注意如果其content值中包含「>或
default是預設值
將被裝飾頁面構造為乙個物件,可以在裝飾頁面的jsp中直接引用。
6)看乙個在裝飾模板中使用標籤的例子
複製**
**如下:
」>
>
從meta中獲取變數company的名稱:
下面是被修飾頁面的body中的內容:
7)看一下相應的在被修飾頁面中的**:
複製**
**如下:
這是乙個被修飾頁面
四,總結
1,sitemesh最為重要的就是做用於修飾的模板,並在decorators.xml中配置這些模板用於修飾哪些頁面。因此使用sitemesh的主要過程就是:做裝飾模板,然後
在decorators.xml中配置url pattern
2,分析整個工程,看哪些頁面需要抽象成模板,例如二級頁面、**頁面、彈出視窗等等可能都需要做成相應的模板,一般來說,乙個大型的oa系統,模板不會超過8個。
如果某個特殊的需求請求路徑在過濾器的範圍內,但又不想使用模板怎麼辦?
你總不能這麼不講道理吧!
大家放心吧,sitemesh早就考慮到這一點了,上面第5步說道的decorators.xml這個時候就起到作用了!
下面是我的decorators.xml:
複製**
**如下:
<?xml version="1.0" encoding="iso-8859-1"?>
/index.jsp*
/login/*
/*decorators.xml有兩個主要的結點:
decorator結點指定了模板的位置和檔名,通過pattern來指定哪些路徑引用哪個模板
excludes結點則指定了哪些路徑的請求不使用任何模板
如上面**,/index.jsp和凡是以/login/開頭的請求路徑一律不使用模板;
另外還有一點要注意的是:decorators結點的defaultdir屬性指定了模板檔案存放的目錄;
使用SiteMesh分割 裝飾jsp頁面
1.在web inf下新增decorators.xml檔案 xmlversion 1.0 encoding utf 8 decorators defaultdir web inf decorator excludes decorator name default page default.jsp i...
SiteMesh頁面布局修飾框架
1.sitemesh 是乙個web頁面布局修飾框架,用於構建包含大量頁面,需要一致的外觀樣式 look fell 導航和布局機制的大型 sitemesh應用decorator模式,用filter擷取request和response,把頁面元件head,content,banner結合為乙個完整的檢視...
頁面修飾框架sitemesh的入門
1.sitemesh簡介 sitemesh 是乙個網頁布局和修飾的框架,利用它可以將網頁的內容和頁面結構分離,以達到頁面結構共享的目的。2.之前沒遇到過,所以寫了乙個小demo來簡單學習下 1 導包 2 在web.xml配置過濾器 sitemesh 3 在web info下新建decorators....