sitemesh教程 頁面裝飾技術原理及應用

2021-07-10 08:18:39 字數 2694 閱讀 4336

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