支持個性化定制是Portal的一個特點。用戶可以很方便地根據(jù)個人喜好進(jìn)行個性化定制,如創(chuàng)建頁面、選擇頁面布局、為每一個頁面選擇具體的Portlet內(nèi)容、改變顯示風(fēng)格等。
用戶個性化必須在系統(tǒng)權(quán)限允許的范圍內(nèi)進(jìn)行。
概念介紹:
在Jetspeed2.0中關(guān)于頁面結(jié)構(gòu)包含以下元素:
元素
描述
文件夾(Folder)
定義站點文件夾,存儲多個頁面
頁面(Page)
多個片段的匯集。以psml格式定義
片段(Fragment)
動態(tài)生成的內(nèi)容,通常就是一個Portlet或頁面。
布局(Layout)
定義了多個頁面片斷被聚合后的顯示模式
裝飾(Decorator)
一個對動態(tài)內(nèi)容進(jìn)行裝飾的靜態(tài)或半靜態(tài)標(biāo)記
布局裝飾
(Layout-Decorator)
對頁面布局的裝飾
Portlet裝飾
(Portlet-Decorator)
針對Portlet進(jìn)行的裝飾
頁面裝飾
(Page-Decorator)
對頁面進(jìn)行裝飾的標(biāo)記。由頁面布局和片斷的裝飾組成
實現(xiàn):
在/WEB-INF/conf/jetspeed-production.properties文件里定義了系統(tǒng)系統(tǒng)默認(rèn)的布局類型和裝飾風(fēng)格。當(dāng)一個頁面需要被顯示時,頁面裝配器會獲得當(dāng)前適用的裝飾風(fēng)格,這個裝飾可以使系統(tǒng)默認(rèn)的,也可以是頁面指定的。
在Jetspeed2.0中所有頁面元素文件都存放在/WEB-INF/pages目錄下。
個性化定制時可以先定義一個站點文件夾,此文件夾相當(dāng)于一個資源文件夾包含多個頁面內(nèi)容。相關(guān)的頁面信息定義在folder.metadata文件中,同時也能定義訪問控制。
頁面元素由psml標(biāo)記語言定義。一個頁面元素包含一個缺省的layout-decorator和一個缺省的portlet-decorator。缺省的layout-decorator是必填項,用來標(biāo)記整個頁面布局的裝飾。缺省得portlet-decorator是可選項,用來定義頁面里包含的portlet的裝飾。
一個頁面元素至少有一個布局片段。也可以包含多個布局,布局間是嵌套關(guān)系。Jetspeed2.0系統(tǒng)的布局是由portlet實現(xiàn)的,部署于/WEB-INF/apps/jetspeed-layouts下,由org.apache.jetspeed.portlets.layout.MultiColumnPortlet類實現(xiàn)。包括添加,刪除,移動,更改裝飾等操作。
頁面裝飾可分為兩部分:布局裝飾和Portlet裝飾。定義在/jetspeed/decorations下,使用的是Velocity的配置模板,就是一系列的vm文件。在這里需要強(qiáng)調(diào)的就是所有全局的宏定義在/WEB-INF/jetspeed-macros.vm文件里。每一個Portlet片段都可以定義自己的裝飾,如果未定義就使用缺省得Portlet裝飾,如果沒有缺省的Portlet裝飾,就是用缺省的布局裝飾。
可以將上述的各個元素畫圖來表示他們之間的關(guān)系:
Folder -------->Page------->Default Decorator
| (layout , portlet)
|-- -------->Fragment --------->Portlet
(layout) (decorator)
總結(jié):
Jetspeed2.0實現(xiàn)了個性化定制功能,用戶可以方便的定制頁面布局和樣式。系統(tǒng)提供的布局裝飾和Portlet裝飾可以為用戶提供更大的便利來定義自己的頁面風(fēng)格。如果想設(shè)計自己的布局模式和裝飾風(fēng)格也是十分方便,定義一個Portlet應(yīng)用,設(shè)計一個裝飾風(fēng)格放到decorations目錄下即可。
轉(zhuǎn)自:http://blog.csdn.net/peterwanghao/archive/2006/04/27/679795.aspx