第五節? 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、監聽器:
??????
?????? com.Liferay.portal.servlet.PortletContextListener
??????
這個要求web 服務器監聽所有跟Portlet有關的請求信息,并將監聽到的內容交給Liferay Portal的Portlet容器處理。
b、Portlet Servlet映射:
??????
????????????? yourPortlet
????????????? com.liferay.portal.servlet.PortletServlet
?????????????
???????????????????? Portlet-class
???????????????????? full.name.of.yourPortlet
?????????????
????????????? 0
??????
?????? 。。。。。。。。。。。。。。。。。。。。。。。。。
??????
????????????? yourPortlet
????????????? /yourPortlet/*
??????
其中,servlet-name為部署的servlet名稱;init-param中定義自己的Portlet類,這個param-name要跟portlet.xml、liferay-portlet.xml、liferay-display.xml中的portlet-name節點值一致。
c、標簽庫映射:
??????
????????????? http://java.sun.com/Portlet
????????????? /WEB-INF/tld/liferay-Portlet.tld
??????
定義了這個標簽庫映射,在JSP文件中才可以使用諸如在內的一些特定的Portlet標簽。
如果在應用中有用到其他的元素,可以按照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? portlet.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默認的品質,不準備對品質的自定義深入探討。有興趣的讀者可以查看相關資料。
?
posted on 2005-10-20 16:01
eamoi 閱讀(5110)
評論(3) 編輯 收藏 所屬分類:
Java