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