第五節? Liferay Portal的品質
Liferay Portal支持個性化的皮膚和外觀設計,并將此作為品質單獨管理。
2.5.1 ? 什么是品質
品質是Liferay Portal的外觀,包括題材和色彩設計兩個部分。題材主要影響Portlet窗口的樣式和Portal的整體效果,包括Portlet邊框格式、功能按鈕、Portal頁面效果等等。色彩設計主要影響Portal的CSS樣式效果。
Liferay Portal默認定義了多種題材效果和色彩設計效果。使用者可以在“品質”選項卡中很容易的選擇自己滿意的品質。
2.5.2 ? 品質和Portlet、Portal的關系
品質跟Portlet和Portal的呈現效果有很大的關系。通常應該根據Portlet內容選擇適當的品質即題材和色彩設計。
題材對Portal的影響主要體現在背景和整體風格上面,以及Portlet和其他功能菜單的布局位置。色彩設計主要影響Portal的字體大小以及顏色等效果。
題材主要控制Portlet生成的窗口的樣式效果,包括邊框效果、標題樣式等等。色彩主要控制Portlet窗口的字體效果,包括字體大小、字體顏色等等。
選擇合適的題材和色彩設計對于Portal頁面的整體呈現效果有明顯的影響。如下圖:
? 定義個性化的品質
用戶登錄Portal系統之后,點擊功能菜單上的“品質”,進入品質定制頁面。選擇適當的題材和色彩設計,相應的品質效果立即生效。
返回桌面查看品質效果。
使用者可以在二次開發的時候定義自己的品質,只要按照規范,在部署描述文件中定義可用的品質,Liferay Portal就可以自動調用。如下圖:
第六節? Liferay Portal的部署描述文件
跟所有的Web應用一樣,Liferay Portal采用多個XML部署描述文件,來初始化部署信息,規范操作模式,比如Portlet的初始化信息、可用的Portlet列表、Portlet所屬角色和用戶組等等。通過這些部署描述文件,Liferay Portal可以在啟動的時候自動加載Portlet,根據需要生成所需的Portlet頁面。普通的Web應用,也可以很方便的轉換成可部署的Portlet。這種實現也是JSR168所規定的。
2.6.1 ? web.xml
web.xml是所有Java Web應用的部署描述文件。其正式的規范由http://java.sun.com/dtd/web-app_2_3.dtd 定義。
?????? 與其他普通Web應用相比,Liferay Portal的Portlet 應用還需要在web.xml中增加如下內容:
a、監聽器:
??????
??????
??????
這個要求web 服務器監聽所有跟Portlet有關的請求信息,并將監聽到的內容交給Liferay Portal的Portlet容器處理。
b、Portlet Servlet映射:
??????
?????????????
?????????????
?????????????
????????????????????
????????????????????
?????????????
?????????????
??????
?????? 。。。。。。。。。。。。。。。。。。。。。。。。。
??????
?????????????
?????????????
??????
其中,servlet-name為部署的servlet名稱;init-param中定義自己的Portlet類,這個param-name要跟portlet.xml、liferay-portlet.xml、liferay-display.xml中的portlet-name節點值一致。
c、標簽庫映射:
??????
?????????????
?????????????
??????
定義了這個標簽庫映射,在JSP文件中才可以使用諸如
如果在應用中有用到其他的元素,可以按照web.xml規范加入到相應的位置當中。
Liferay Portal默認的liferay應用,由于使用了Struts、Hibernate、Spring在內的多個開源框架,所以{PORTAL_HOME}/liferay/WEB-INF/web.xml文件會相對復雜些。
在自定義的Portlet,可以使用getPortletConfig().getInitParameter(“ ”)和getPortletConfig().getParameterNames(“”)兩個方法來取得在web.xml中定義的參數。
2.6.2 ? p ortlet.xml
portlet.xml用來定義Portlet的諸如部署名稱、初始化參數、支持模式、resource bundle等普通的初始化信息,包括:portlet-name、display-name、portlet-class、init-param、expiration-cathe、supports、portlet-info、security-role-ref等等。其正式的規范請參考:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd 。根目錄為portlet-webapp。
portlet-name:Portlet的規范名稱,在Portlet應用中必須唯一,主要用在Portlet部署和映射中。
display-name:供部署工具調用的Portlet簡稱,在Portlet應用中必須唯一。
portlet-class:Portlet對應的類,這個類必須直接或者間接的繼承javax.Portlet.GenericPortlet。
init-param:初始化參數,有成對的 和 子元素。通常定義Portlet相應模式下可用的JSP頁面。
expiration-cathe:定義Portlet加載允許最長的過期時間,以秒為單位。-1代表用不過期。
supports:定義Portlet支持的模式。所有的Portlet都必須支持瀏覽模式。
其他的元素含義請參照:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd
當Web 應用中有多個的Portlet時,可以統一的在Portlet。xml中定義一組的 元素。
??????
????????????? TestPortlet
????????????? TestPortlet
????????????? com.educhina.portal.FirstPortlet
?????????????
???????????????????? view-jsp
???????????????????? /view.jsp
?????????????
?????????????
???????????????????? edit-jsp
???????????????????? /edit.jsp
?????????????
????????????? 0
?????????????
???????????????????? text/html
?????????????
?????????????
???????????????????? text/html
???????????????????? edit
?????????????
?????????????
???????????????????? educhina Test Portlet
???????????????????? educhina Test Portlet
???????????????????? educhina Test Portlet
?????????????
?????????????
???????????????????? guest
?????????????
??????
?
2.6.3 ? liferay-Portlet.xml
定義Portlet默認可用的用戶組、默認模板、是否支持多個實例等,規范由http://www.liferay.com/dtd/liferay-Portlet-app_3_5_0.dtd 定義。
liferay-portlet.xml主要包含單獨或者成組的 、 。其中, 下包含 、 、 、 等子元素, 在應用中必須唯一,且要跟portlet.xml相同; 下包含成對的 、 子元素。具體的元素含義請查看上述dtd定義。
??????
????????????? TestPortlet
????????????? TestPortlet
????????????? true
????????????? true
??????
??????
????????????? administrator
????????????? Administrator
??????
??????
????????????? guest
????????????? Guest
??????
??????
????????????? power-user
????????????? Power User
??????
??????
????????????? user
????????????? User
??????
2.6.4 ? liferay-display.xml
定義Portlet默認的所屬類別。Liferay Portal對Portlet實行按類別管理和劃分用戶權限。正如我們在用戶策略中提到的,可以制定某個類別可用的用戶組、用戶和角色,方便權限控制。Liferay-display.xml規范由http://www.liferay.com/dtd/liferay-display_3_5_0.dtd 定義。
Liferay-display.xml中, 下成組的 描述了可用的類別,其中portlet元素的id必須與liferay-portlet.xml的portlet-name保持一致,且在應用中唯一。
??????
?????????????
??????
2.6.5 ? liferay-layout-templates.xml
定義Portal可用的布局。正如我們在布局與品質中提到的那樣,Portal采用tpl文件來規劃桌面的布局。liferay-layout-templates。xml采用成組的layout-template來構建一個可用的布局列表。此xml的規范由http://www.liferay.com/dtd/liferay-layout-templates_3_6_0.dtd 來定義。
本文采用Liferay Portal默認的布局,暫時不需要定義自己的布局,故不準備深入討論。讀者有興趣可以自己查看相關資料。
??????
????????????? /html/layouttpl/1_column 。tpl
??????
??????
????????????? /html/layouttpl/2_columns_i 。tpl
??????
??????
????????????? /html/layouttpl/3_columns 。tpl
??????
?????? 1-2-1 Columns">
????????????? /html/layouttpl/1_2_1_columns 。tpl
??????
2.6.7 ? liferay-look-and-feel。xml
定義Portal可用品質的模板、圖片、樣式表等等,定義完畢后,Portal可以通過“布局與品質”管理工具來進行品質的切換。Liferay-look-and-feel.xml規范由http://www.liferay.com/dtd/liferay-look-and-feel_3_5_0.dtd 定義。
本文采用Liferay Portal默認的品質,不準備對品質的自定義深入探討。有興趣的讀者可以查看相關資料。
?
2.6.2 ? p ortlet.xml
portlet.xml用來定義Portlet的諸如部署名稱、初始化參數、支持模式、resource bundle等普通的初始化信息,包括:portlet-name、display-name、portlet-class、init-param、expiration-cathe、supports、portlet-info、security-role-ref等等。其正式的規范請參考:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd 。根目錄為portlet-webapp。
portlet-name:Portlet的規范名稱,在Portlet應用中必須唯一,主要用在Portlet部署和映射中。
display-name:供部署工具調用的Portlet簡稱,在Portlet應用中必須唯一。
portlet-class:Portlet對應的類,這個類必須直接或者間接的繼承javax.Portlet.GenericPortlet。
init-param:初始化參數,有成對的
expiration-cathe:定義Portlet加載允許最長的過期時間,以秒為單位。-1代表用不過期。
supports:定義Portlet支持的模式。所有的Portlet都必須支持瀏覽模式。
其他的元素含義請參照:http://java.sun.com/xml/ns/Portlet/Portlet-app_1_0.xsd
當Web 應用中有多個的Portlet時,可以統一的在Portlet。xml中定義一組的
??????
?????????????
?????????????
?????????????
?????????????
????????????????????
????????????????????
?????????????
?????????????
????????????????????
????????????????????
?????????????
?????????????
?????????????
????????????????????
?????????????
?????????????
????????????????????
????????????????????
?????????????
?????????????
????????????????????
????????????????????
????????????????????
?????????????
?????????????
????????????????????
?????????????
??????
?2.6.3 ? liferay-Portlet.xml
定義Portlet默認可用的用戶組、默認模板、是否支持多個實例等,規范由http://www.liferay.com/dtd/liferay-Portlet-app_3_5_0.dtd 定義。
liferay-portlet.xml主要包含單獨或者成組的
??????
?????????????
?????????????
?????????????
?????????????
??????
??????
?????????????
?????????????
??????
??????
?????????????
?????????????
??????
??????
?????????????
?????????????
??????
??????
?????????????
?????????????
??????
2.6.4 ? liferay-display.xml
定義Portlet默認的所屬類別。Liferay Portal對Portlet實行按類別管理和劃分用戶權限。正如我們在用戶策略中提到的,可以制定某個類別可用的用戶組、用戶和角色,方便權限控制。Liferay-display.xml規范由http://www.liferay.com/dtd/liferay-display_3_5_0.dtd 定義。
Liferay-display.xml中,
??????
?????????????
??????
2.6.5 ? liferay-layout-templates.xml
定義Portal可用的布局。正如我們在布局與品質中提到的那樣,Portal采用tpl文件來規劃桌面的布局。liferay-layout-templates。xml采用成組的layout-template來構建一個可用的布局列表。此xml的規范由http://www.liferay.com/dtd/liferay-layout-templates_3_6_0.dtd 來定義。
本文采用Liferay Portal默認的布局,暫時不需要定義自己的布局,故不準備深入討論。讀者有興趣可以自己查看相關資料。
??????
?????????????
??????
??????
?????????????
??????
??????
?????????????
??????
??????
?????????????
??????
2.6.7 ? liferay-look-and-feel。xml
定義Portal可用品質的模板、圖片、樣式表等等,定義完畢后,Portal可以通過“布局與品質”管理工具來進行品質的切換。Liferay-look-and-feel.xml規范由http://www.liferay.com/dtd/liferay-look-and-feel_3_5_0.dtd 定義。
本文采用Liferay Portal默認的品質,不準備對品質的自定義深入探討。有興趣的讀者可以查看相關資料。
?