liferay整理文檔課件_第1頁(yè)
liferay整理文檔課件_第2頁(yè)
liferay整理文檔課件_第3頁(yè)
liferay整理文檔課件_第4頁(yè)
liferay整理文檔課件_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Liferay6.2文檔 作者:張娜日期:2014-01-10目錄1 環(huán)境搭建41.1 開發(fā)工具41.2 打開集成Liferay Portal IDE的Eclipse41.3配置Liferay-plugins-sdk51.4 配置ant61.5 配置tomcat71.6 配置jre參數(shù)71.7啟動(dòng)服務(wù)82 配置數(shù)據(jù)庫(kù)83 liferay使用介紹93.1 訪問portal93.2 添加應(yīng)用93.3 管理103.3.1頁(yè)面113.3.2 站點(diǎn)設(shè)置133.3.3 站點(diǎn)內(nèi)容133.4 門戶的基礎(chǔ)管理143.4.1 用戶和組織143.4.2 站點(diǎn)143.4.3 網(wǎng)站模板153.4.4 網(wǎng)頁(yè)模板153.4

2、.5 用戶群組163.4.6 角色163.4.7 portal設(shè)置164 Portal架構(gòu)174.1 portal和portlet的概念174.2 portal結(jié)構(gòu)184.3 portal的組成架構(gòu)194.4 portal應(yīng)用架構(gòu)214.5 Portal主要功能215 Portal標(biāo)準(zhǔn)226 liferay國(guó)際化236.1屬性的國(guó)際化236.2 內(nèi)容的國(guó)際化247 常用參數(shù)配置247.1 文件存儲(chǔ)路徑247.2 去掉公共頁(yè)和私有頁(yè)247.3 去掉用戶第一次登錄時(shí)的密碼提示247.4 讓沒有權(quán)限的portlet隱藏掉247.5 上傳文件大小配置247.6 liferay的登錄認(rèn)證形式257.7

3、liferay默認(rèn)進(jìn)入的站點(diǎn)257.8 event配置257.9 設(shè)置session258 liferay中常用的API268.1 獲取HttpServletRequest268.2 獲取UserId、groupId、companyId268.3 獲取當(dāng)前頁(yè)面、導(dǎo)航的名稱278.4 獲取當(dāng)前環(huán)境運(yùn)行類型278.5 Validator驗(yàn)證278.6 ParamUtil278.7 password289 創(chuàng)建主題289.1主題目錄289.2主題樣式文件289.3主題模版文件299.4在eclipse下創(chuàng)建主題2910 創(chuàng)建Layout Template3211 常見問題351 環(huán)境搭建1.1 開發(fā)

4、工具1. 集成Liferay Portal IDE插件的Eclipse,在線插件安裝地址: 2. Liferay-plugins-sdk插件包,開發(fā)portlet、theme、layout、ext、hook等插件項(xiàng)目,下載地址: 3. Liferay Portal RunTime Server,本環(huán)境使用Tomcat,官方有綁定好的,下載地址:4. 所需軟件包1.2 打開集成Liferay Portal IDE的Eclipse從官網(wǎng)上下載右鍵new項(xiàng)目有Liferay視圖則插件安裝成功1.3配置Liferay-plugins-sdk1.4 配置antAdd External JARs到life

5、ray-portal-src-6.2.0-ce-ga1libdevelopment下找到ecj.jar添加進(jìn)來即可。1.5 配置tomcat1.6 配置jre參數(shù)-Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m1.7啟動(dòng)服務(wù)以默認(rèn)的用戶名:test密碼:test登錄進(jìn)去,如果出現(xiàn)如下界面表示啟動(dòng)成功。2 配置數(shù)據(jù)庫(kù)有如下兩種方式(1)liferay-portal-6.2.0-ce-ga1tomcat-7.0.42webappsROOTWEB-INFclasses下面增加一個(gè)perties的文件,里面放入

6、 jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql:/localhost:3306/src_portal2?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.default.username=rootjdbc.default.password=123jdbc.default.driverClassName=com.mysql.jdbc.Driverjdbc.default.url=j

7、dbc:mysql:/16/lportal_6_1?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=falsejdbc.default.username=rootjdbc.default.password=abc123_jdbc.default.driverClassName=com.mysql.jdbc.Driverjdbc.default.url=jdbc:mysql:/localhost:3306/src_portal2?useUnicode=true&characte

8、rEncoding=UTF-8&useFastDateParsing=falsejdbc.default.username=rootjdbc.default.password=123(2)可以在liferay-portal-6.2.0-ce-ga1tomcat-7.0.42webappsROOTWEB-INFlibportal-imp.jar中找到perties,注釋掉Hypersonic的代碼,然后把mysql的注釋給消掉,最后重新將這個(gè)文件放入jar。3 liferay使用介紹3.1 訪問portal輸入默認(rèn)用戶名:testliferay.xom密碼:test進(jìn)

9、入,如圖所示:3.2 添加應(yīng)用點(diǎn)擊左上角的加號(hào),可看到系統(tǒng)內(nèi)置的一些portlets,添加進(jìn)來即可,可拖動(dòng)放到合適的地方。3.3 管理3.3.1頁(yè)面編輯當(dāng)前頁(yè)面,包括:頁(yè)面類型,頁(yè)面名稱,HTML標(biāo)題,樣式外觀自定義,添加子頁(yè)面,訪問權(quán)限管理等操作。頁(yè)面布局:為當(dāng)前頁(yè)選擇布局。添加頁(yè)面時(shí),可選擇如下提示的布局,也可以自己開發(fā)布局。3.3.2 站點(diǎn)設(shè)置3.3.3 站點(diǎn)內(nèi)容3.4 門戶的基礎(chǔ)管理3.4.1 用戶和組織用戶:用戶是使用 Portal 執(zhí)行任務(wù)的個(gè)人。管理員可以創(chuàng)建新的用戶,也可以撤銷現(xiàn)有用戶。用戶可以加入站點(diǎn),進(jìn)入層級(jí)組織,進(jìn)入用戶群組,還可能被消除角色權(quán)限。用戶群組能夠跨越組織界限

10、,用來將所有成員分配至其他群體組織,如,站點(diǎn)或者角色。用戶群組還能用來為群組成員自定義個(gè)人站點(diǎn)模板。常規(guī)組織:公司,銷售部門,市場(chǎng)部門等都是常規(guī)組織,如閔行區(qū)教育局,教育局各個(gè)科室都是常規(guī)組織。位置:分支機(jī)構(gòu),下屬單位等都是存儲(chǔ)單元,如閔行區(qū)教育學(xué)院,區(qū)管各家學(xué)校都是存儲(chǔ)單元。3.4.2 站點(diǎn)站點(diǎn)是一系列頁(yè)面組合,這些頁(yè)面能夠顯示內(nèi)容,也能提供特定應(yīng)用的訪問路徑。站點(diǎn)的成員可以有高級(jí)權(quán)限去訪問指定的頁(yè)面和內(nèi)容。添加站點(diǎn)有三個(gè)站點(diǎn)選項(xiàng),如下圖,分別是:(1)添加空白站點(diǎn)(2)添加社區(qū)站點(diǎn):Site with Forums, Calendar and Wiki。(3)添加局域網(wǎng)站點(diǎn):Site wi

11、th Documents, Calendar and News。 3.4.3 網(wǎng)站模板站點(diǎn)模板使得您能夠在創(chuàng)建站點(diǎn)時(shí)定義所需頁(yè)面和網(wǎng)頁(yè)內(nèi)容。管理員能夠創(chuàng)建并編輯站點(diǎn)模板,也能夠?qū)ζ錂?quán)限進(jìn)行設(shè)置。3.4.4 網(wǎng)頁(yè)模板網(wǎng)頁(yè)模板:頁(yè)面模板使您能夠在創(chuàng)建頁(yè)面時(shí)選擇所需頁(yè)面和 portlet 。管理員可以創(chuàng)建和編輯頁(yè)面模板,也可以對(duì)其使用權(quán)限進(jìn)行設(shè)置。3.4.5 用戶群組用戶組提供了一種聚集用戶的方法,與他們所屬的組織無關(guān)。管理員能夠定義一個(gè)用戶組并且分配用戶組作為一個(gè)站點(diǎn)的成員,這也將自動(dòng)地將此用戶組的所有成員分配給了此站點(diǎn)。3.4.6 角色常規(guī)角色:超級(jí)管理員,游客,所有者,特權(quán)用戶,普通用戶。站點(diǎn)

12、角色:站點(diǎn)管理員,站點(diǎn)成員,站點(diǎn)所有者。組織角色:機(jī)構(gòu)管理員,機(jī)構(gòu)所有者,機(jī)構(gòu)用戶。例如,學(xué)校用戶,部門成員等。3.4.7 portal設(shè)置Portal設(shè)置:此處所說的“設(shè)置”指的是與大多數(shù)全球性 portal 設(shè)置相同的設(shè)置,包括名字、身份驗(yàn)證、默認(rèn)用戶關(guān)聯(lián)、郵件主機(jī)名稱。其中的核心是CAS等SSO用戶統(tǒng)一認(rèn)證設(shè)置,如下圖。4 Portal架構(gòu)4.1 portal和portlet的概念“Portal”一詞在英語(yǔ)中解釋為“入口,大門”,中文翻譯為“門戶”。在Sun的Portlet技術(shù)規(guī)范JSR-168(Java Specification Request 168)中定義為:Portal是基于W

13、eb的應(yīng)用,通常提供個(gè)性化,單點(diǎn)登錄,整合不同資源的綜合信息展示平臺(tái)。Portal展現(xiàn)在最終用戶面前的是類似于Web網(wǎng)頁(yè)的Portal頁(yè)面,也許有些Portal主頁(yè)制作的更像是一個(gè)桌面系統(tǒng)的界面,更能獲得用戶的認(rèn)可。構(gòu)成Portal頁(yè)面的是能夠建立和展現(xiàn)不同內(nèi)容的一系列Portlet。Portal使用Portlet作為可插拔用戶接口組件,提供信息系統(tǒng)的表示層。Portlet是部署在特定容器內(nèi)用來生成動(dòng)態(tài)內(nèi)容的可重用Web組件。Portlet處理從Portal傳遞來的用戶請(qǐng)求,動(dòng)態(tài)生成輸出內(nèi)容的一個(gè)片段,展現(xiàn)在Portal頁(yè)面的某個(gè)位置上。Portlet的主要特點(diǎn):Portlet 是基于Java

14、技術(shù)的Web 組件。 由專門的容器管理 Portlet 。 Portlet用于生成動(dòng)態(tài)內(nèi)容。 Portlet只生成標(biāo)記片段,并不產(chǎn)生完整的Web頁(yè)面。由Portal負(fù)責(zé)將Portlet片段整合成完整的Portal頁(yè)面。Portlet不直接捆綁到URL。Web用戶通過Portal同Portlet進(jìn)行交互。Portlet具有預(yù)定義的模版和視窗狀態(tài)。Portlet容器是Portlet的運(yùn)行環(huán)境,它負(fù)責(zé)管理Portlet的生命周期,保存Portlet的定制信息。通俗的講,Portlet容器就是Portlet組件工作的管理器,這一點(diǎn)類似于Servlet容器和Servlet之間的關(guān)系。4.2 portal

15、結(jié)構(gòu)Portal是一個(gè)Web頁(yè)面,它由一個(gè)或若干個(gè)Portal頁(yè)面組織而成。而每個(gè)Portal頁(yè)面又是由一個(gè)或若干個(gè)Portlet窗口構(gòu)成的Portlet是以窗口的形式出現(xiàn)在Portal頁(yè)面里。如圖所示是一個(gè)Portal頁(yè)面結(jié)構(gòu)的示例,有四個(gè)Portlet窗口。 Portlet窗口由兩部分構(gòu)成:其一是外觀,包含有標(biāo)題條、窗口控制和邊框樣式;其二是內(nèi)容,即Portlet片段。如圖顯示了Portal服務(wù)器、Portlet容器以及Portlet之間的關(guān)系。4.3 portal的組成架構(gòu)Portal系統(tǒng)一般由Portal服務(wù)器、支持Servlet的Java應(yīng)用服務(wù)器或Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)

16、器、LDAP服務(wù)器組成,此外還可以加上身份認(rèn)證和訪問控制服務(wù)器(Identity Server或Access Manager)等。前面所說的Portlet容器通常是打包在Portal服務(wù)器中的。有的Portal系統(tǒng)可以工作在具有Servlet容器的Web服務(wù)器上,但多數(shù)Portal要求在Java應(yīng)用服務(wù)器上運(yùn)行。如Liferay Portal既能在Tomcat(Servlet容器+Web服務(wù)器)上使用,也可以在JBossAS(Java應(yīng)用服務(wù)器+Web服務(wù)器)上運(yùn)行,而JBoss Portal只支持JBossAS的Java應(yīng)用服務(wù)器。通常,Portal的定制信息是保存在數(shù)據(jù)庫(kù)中的,幾乎所有的P

17、ortal系統(tǒng)產(chǎn)品需要數(shù)據(jù)庫(kù)管理系統(tǒng)的支持。LDAP服務(wù)器主要用在用戶管理、身份認(rèn)證和權(quán)限管理上。有些Portal系統(tǒng)也支持使用數(shù)據(jù)庫(kù)來管理用戶身份和權(quán)限。為了解決用戶單點(diǎn)登錄和訪問控制問題,也許還要增加這方面的專業(yè)服務(wù)軟件,如Idengtity Manager或Access Manager等。此外,Portal服務(wù)器也支持其它應(yīng)用服務(wù)系統(tǒng)的協(xié)同工作,比如同電子郵件(Email),網(wǎng)絡(luò)交談(Chat),網(wǎng)絡(luò)會(huì)議(Web Conference),以及基于Lotus Domino的OA系統(tǒng)等直接對(duì)接聯(lián)動(dòng)。4.4 portal應(yīng)用架構(gòu)如圖是Portal應(yīng)用的一個(gè)示例架構(gòu)圖。4.5 Portal主要功

18、能1、單點(diǎn)登錄(SSOSingle Sign-On):Portal提供對(duì)各種應(yīng)用系統(tǒng)和數(shù)據(jù)的安全集成,用戶只需從Portal服務(wù)器登錄一次就可以訪問其它應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)。對(duì)于安全性要求較高的業(yè)務(wù)系統(tǒng),如電子銀行、電子交易系統(tǒng)等,通過傳遞用戶身份信息,如數(shù)字證書信息、數(shù)字簽名信息等進(jìn)行二次身份認(rèn)證,保證單點(diǎn)登錄的安全性。單點(diǎn)登錄既減少了用戶在多個(gè)應(yīng)用系統(tǒng)反復(fù)登錄多次認(rèn)證的麻煩,更是簡(jiǎn)化了各種應(yīng)用系統(tǒng)對(duì)用戶及其權(quán)限的一致性維護(hù)管理。2、資源整合:能夠把各種不同應(yīng)用的內(nèi)容聚合到一個(gè)統(tǒng)一的頁(yè)面呈現(xiàn)給用戶,實(shí)現(xiàn)同應(yīng)用系統(tǒng)實(shí)時(shí)交換信息。能夠從各種數(shù)據(jù)源如數(shù)據(jù)庫(kù)、多種格式的文件檔案、Web頁(yè)面、電子郵件等集

19、成用戶所需的動(dòng)態(tài)內(nèi)容。3、定制與個(gè)性化:能夠?yàn)椴煌巧挠脩糁贫ú煌δ軝?quán)限的Portal頁(yè)面。同時(shí),用戶自己也能夠按照喜好在規(guī)定的權(quán)限下定制自己風(fēng)格的頁(yè)面和內(nèi)容,如可以定制Portal頁(yè)面,取舍不同功能和內(nèi)容的Portlet窗口,自行布置Portlet窗口的擺放位置,可以對(duì)Portlet窗口外觀,如標(biāo)題,圖標(biāo),顏色等進(jìn)行個(gè)性化設(shè)置。4、協(xié)作功能:為用戶提供即時(shí)討論,聊天,論壇,電子郵件以及語(yǔ)音或視頻會(huì)議等功能。5、工作流:支持根據(jù)業(yè)務(wù)處理規(guī)則建立起來的工作流任務(wù)處理,比如審批流程等待辦事宜。6、信息檢索:從多種數(shù)據(jù)源檢索動(dòng)態(tài)信息資料。7、客戶端:除了Web瀏覽器外,可以為PDA和手機(jī)提供接口

20、,實(shí)現(xiàn)移動(dòng)接入服務(wù)。5 Portal標(biāo)準(zhǔn)建立一個(gè)以標(biāo)準(zhǔn)為依托的Portal才能很好地保護(hù)自己的投資,既便于同現(xiàn)有應(yīng)用系統(tǒng)連接,也使得同第三方的相關(guān)產(chǎn)品更容易接口。在2003年先后發(fā)布的JSR-168和WSRP兩大標(biāo)準(zhǔn)為Portal的發(fā)展奠定了基礎(chǔ),結(jié)束了戰(zhàn)國(guó)紛爭(zhēng)的局面,Portal的發(fā)展和應(yīng)用將會(huì)更加廣闊長(zhǎng)遠(yuǎn)。下面介紹幾個(gè)與Portal緊密相關(guān)的技術(shù)標(biāo)準(zhǔn):1、WSDLWeb Service Description LanguageWeb服務(wù)描述語(yǔ)言。WSDL是用來描述Web服務(wù)和說明如何與Web服務(wù)通信的XML語(yǔ)言。WSDL語(yǔ)言使用XML格式來描述信息的接口、訪問格式和處理形式。WSDL描述信

21、息內(nèi)容。2、SOAPSimple Object Access Protocol簡(jiǎn)單對(duì)象訪問協(xié)議。SOAP是一種在無中心的分布式環(huán)境下,應(yīng)用系統(tǒng)之間交換結(jié)構(gòu)化信息和特定類型的信息所使用的基于XML的輕量級(jí)協(xié)議。SOAP允許任何信息對(duì)象在任何語(yǔ)言、任何平臺(tái)上使用多種傳輸協(xié)議實(shí)現(xiàn)傳輸處理。SOAP定義信息的傳輸處理。在Web應(yīng)用環(huán)境中,通常把SOAP同WSDL結(jié)合起來,利用HTTP協(xié)議實(shí)現(xiàn)應(yīng)用系統(tǒng)之間交換各種類型的信息對(duì)象。3、JSR -168Java Specification Request - Portlet SpecificationJava Portlet規(guī)范。JSR-168為業(yè)界明確了P

22、ortal的定義,制定了Portlet規(guī)范標(biāo)準(zhǔn),從而解決了基于Java的Portal之間,以及同其他Web應(yīng)用系統(tǒng)之間的互操作性。遵循JSR-168的Portlet將具有適用于所有Portal服務(wù)器和Web應(yīng)用系統(tǒng),支持多種類型的客戶端,支持本地化和國(guó)際化,具備確定的安全性,允許Portal應(yīng)用程序熱部署和重新部署。4、WSRPWeb Services for Remote Portlets遠(yuǎn)程Portlet Web服務(wù)協(xié)議。WSRP定義了Portal和Portlet容器服務(wù)之間標(biāo)準(zhǔn)化接口的一個(gè)Web服務(wù)標(biāo)準(zhǔn)。WSRP允許在Portal之間或其他Web應(yīng)用上即插即用,具有互操作性,提供可視化的

23、、面向用戶的遠(yuǎn)程Web服務(wù)。遠(yuǎn)程Portlet在遠(yuǎn)程服務(wù)器上作為Web服務(wù)運(yùn)行,其服務(wù)可以發(fā)布到公共的或單位自己的UDDI服務(wù)器上。Portal或其他支持WSRP的應(yīng)用系統(tǒng)通過UDDI服務(wù)來查找并使用遠(yuǎn)程系統(tǒng)提供的WSRP服務(wù)內(nèi)容。WSRP的典型應(yīng)用是把天氣預(yù)報(bào)、即時(shí)新聞、股市行情等嵌入到自己的Portal中(在國(guó)外有專門的WSRP內(nèi)容提供商提供這種服務(wù))。WSRP使用了WSDL定義應(yīng)用程序的接口,并以SOAP作為通訊標(biāo)準(zhǔn)。5、其他規(guī)范標(biāo)準(zhǔn)此外還有一些與Portal有一定關(guān)聯(lián)的技術(shù)標(biāo)準(zhǔn),在開發(fā)建立Portal應(yīng)用中將會(huì)使用到:UDDI:Universal Description,Discove

24、ry and IntegrationJSR-170/283:Java Specification Request - Content Repository for Java Technology APIJAAS:Java Authentication and Authorization ServiceLDAP:Lightweight Directory Access ProtocolSAML:Security Assertion Markup LanguageBPEL:Business Process Execution Language for Web Services6 liferay國(guó)際

25、化6.1屬性的國(guó)際化新建liferay portlet時(shí)選中create resource bundle file可自動(dòng)在WEB-INF/src/content/創(chuàng)建Lperties文件,如下圖:也可以在content下綁定具體語(yǔ)言的文件,如Language_zh_CN.properties在此文件中寫入javax.portlet.title.portletName=中文標(biāo)題名稱。6.2 內(nèi)容的國(guó)際化Jsp中引用LanguageUtil.get(pageContext,”propertyName”);Java代碼中LanguageUtil.get(porletReques

26、t.getLocal(),”propertyName”);第一個(gè)參數(shù)是Local,也可以是Local.CHINESE,第二個(gè)參數(shù)是資源文件中的變量。7 常用參數(shù)配置7.1 文件存儲(chǔ)路徑iferay中的文件存儲(chǔ)路徑默認(rèn)是保存在和tomcat同級(jí)的data/document_library目錄下面,如果想要自定義,可以修改以下參數(shù):dl.store.file.system.root.dir=$liferay.home/data/document_library這里定義的即為系統(tǒng)的文件存儲(chǔ)路徑,默認(rèn)是和liferay.home的路徑有關(guān)的,相對(duì)于liferay.home的相對(duì)路徑,你也可以設(shè)置絕對(duì)路

27、徑,如下:dl.store.file.system.root.dir=E:/liferay/document_library7.2 去掉公共頁(yè)和私有頁(yè)layout.user.private.layouts.enabled=falselayout.user.private.layouts.auto.create=false7.3 去掉用戶第一次登錄時(shí)的密碼提示Users.remider.queries.enabled=false7.4 讓沒有權(quán)限的portlet隱藏掉Layout.show.portlet.access.denied=false7.5 上傳文件大小配置dl.file.max.si

28、ze=10485760 單位字節(jié),這個(gè)配置是10M7.6 liferay的登錄認(rèn)證形式使用屏幕名稱:company.security.auth.type=screenName使用用戶ID:Company.security.auth.type=userId7.7 liferay默認(rèn)進(jìn)入的站點(diǎn)=xxx后面的xxx這個(gè)具體等于多少,要查看數(shù)據(jù)庫(kù)表group_表,此表里面有許多的社區(qū),在此表的name字段下面尋找我們要默認(rèn)進(jìn)入的站點(diǎn)名稱,替換上面的xxx注意:如果這里是中文字符,需要轉(zhuǎn)換為unicode編碼,如:Virtual.hosts.

29、=u5927u55107.8 event配置Event不但可以portlet到portlet傳值,也可以一個(gè)頁(yè)面到另一個(gè)頁(yè)面?zhèn)髦?,但要在perties中修改一下:將上面的改為portlet.event.distribution=lalyout-set7.9 設(shè)置session 1.在perties文件中找到如下一列session.shared.attributes=COMPANY_,LIFERAY_SHARED_,org.apache.struts.action.LOCALE,PORTLET_RENDER_PARAMET

30、ERS_,PUBLIC_RENDER_PARAMETERS_POOL_,USER_,DIC_SHARE_USER_JOB在后面添加一個(gè)自己的session參數(shù)即可,如上DIC_SHARE_USER_JOB為自己添加的參數(shù)2.在liferay-portelt.xml文件portlet下設(shè)置<private-session-attributes>false</private-session-attributes>3.發(fā)起portlet存session,設(shè)置如下:request.getPortletSession().setAttribute(“DIC_SHARE_USER_

31、JOB”,strChoseJob,PortletSession.APPLICATION_SCOPE);4.取sessionString str=ObjectUtils.toString(renderRequest.getPortletSession().getAttribute(“DIC_SHARE_USER_JOB”,PortletSession.APPLICATION_SCOPE);8 liferay中常用的API8.1 獲取HttpServletRequest在一些特殊情況下,我們希望在portlet中使用原生的httpServletRequest,可以使用下面的代碼獲取,下面分別是re

32、nderRequest和actionRequest,可以將renderRequest和actionRequest轉(zhuǎn)化為HttpServletRequest:HttpServletRequest request=PortalUti.getHttpServletRequest(renderRequest);HttpServletRequest request=PortalUtil.getHttpServletResponse(actionRequest);8.2 獲取UserId、groupId、companyIdLiferay中的二級(jí)開發(fā),在設(shè)計(jì)表的時(shí)候強(qiáng)烈建議為每一個(gè)表添加groupId和co

33、mpanyId,這樣我們的系統(tǒng)就可以在不同的站點(diǎn),company下面獨(dú)立使用。獲取這些參數(shù)的代碼如下:Long companyId = PortalUtil.getCompanyId(actionRequest); Long userId = PortalUtil.getUserId(actionRequest); try Long groupId = PortalUtil.getScopeGroupId(actionRequest); /獲取User User user = PortalUtil.getUser(actionRequest); System.out.println("

34、;companyId:" + companyId + " userId:" + userId + " groupId:" + groupId); System.out.println("User信息如下:n" + "Email:" + user.getEmailAddress() + "全名:" + user.getFullName() + "密碼:" + user.getPassword(); catch (PortalException e) / TODO Au

35、to-generated catch block e.printStackTrace(); catch (SystemException e) / TODO Auto-generated catch block e.printStackTrace(); 8.3 獲取當(dāng)前頁(yè)面、導(dǎo)航的名稱Liferay中的導(dǎo)航其實(shí)就是一個(gè)個(gè)的頁(yè)面,這個(gè)頁(yè)面對(duì)應(yīng)于liferay中的Layout這個(gè)實(shí)體,其實(shí)要獲取頁(yè)面/導(dǎo)航信息,只需要獲取到Layout即可。Layout在jsp中通過下面的兩種方法獲取Layout layout=(Layout)request.getAttribute(WebKeys.LAYOUT)

36、;或者是添加以下的標(biāo)簽:<% taglib uri=” prefix=”liferay-theme”%><liferay-theme:defineObjects/>有了上面的這兩個(gè)標(biāo)簽,即可直接使用layoutLayout.getName就是頁(yè)面/導(dǎo)航的名稱,通過這個(gè)可以獲取父頁(yè)面的信息,子頁(yè)面的信息等。如<% taglib uri=" prefix="liferay-theme" %><liferay-theme:defineObjects/><%=layout.getName() %><!- 頁(yè)

37、面/導(dǎo)航信息->8.4 獲取當(dāng)前環(huán)境運(yùn)行類型If(ServerDetector.isTomcat()/Tomcat Server.else if(ServerDetector.isWebLogic()/WebLogic Server8.5 Validator驗(yàn)證com.liferay.util.Validator判斷字符串、數(shù)組等是不是為空Validator.isNull(String s);Validator.isNotNull(String s); /判斷是不是Email地址Validator.isEmailAddress(String s);判斷字符串是否為ascii字符:Vali

38、dator.isChar(String s);判斷字符是否為ascii字符:Validator.isChar(char c);8.6 ParamUtil/取字符串String name=ParamUtil.getString(actionRequest,”name”);等于String name=actionRequest.getParamter(“name”);Int PramUtil.getInteger(actionRequest,”age”);Double ParamUtil.getDouble(.,.);Boolean ParamUtil.getBoolean(.,.);8.7 pa

39、sswordliferay的password是編碼過得,而且是單方的,不能反過來,只能把你的密碼編碼了和數(shù)據(jù)庫(kù)比較.看liferay的源碼com.liferay.portal.action.LoginAction這里面有:PasswordEncryptorUtil.encrypt("123456")9 創(chuàng)建主題Liferay中的風(fēng)格包在html/themes下9.1主題目錄css:該主題的樣式文件images:主題的圖片文件 javascript:主題所需的javascript文件 templates:主題的velocity模版文件 9.2主題樣式文件main.css:主樣

40、式文件 base.css:基礎(chǔ)樣式 custom.css:個(gè)性化樣式 form.css:portlet中form樣式 layout.css:布局樣式 navigation.css:導(dǎo)航樣式 portlet.css:portlet樣式 tabs.css:表格樣式 注:主題的樣式要寫在對(duì)應(yīng)的樣式文件里,這樣維護(hù)方便。 主題圖片: 注:主題的圖片要放在對(duì)應(yīng)的文件里,這樣維護(hù)方便。 9.3主題模版文件 模版初始化在/html/themes/_unstyled/templates/init.vm portal_normal.vm:是整體portal模板 它包括了: -banner部分 -logo徽標(biāo) -

41、dock管理工具 -navigation導(dǎo)航部分 -Portlet容器部分 -bottom部分 navigation.vm:導(dǎo)航模板 -當(dāng)前portal的子頁(yè)或子portal -我的空間(當(dāng)前用戶能訪問的空間或工作區(qū))dock.vm:管理工具模板 -首頁(yè) -我的賬戶 -登出 -登入 -添加內(nèi)容 -風(fēng)格 -頁(yè)面設(shè)置 portlet.vm:portlet模版 -top -body -bottom 9.4在eclipse下創(chuàng)建主題File->new->liferay-project如下圖,選擇theme項(xiàng)目結(jié)構(gòu)如圖所示在_diffs文件夾下,修改相應(yīng)的文件來適應(yīng)自己的需求,然后部署到服務(wù)

42、其中然后在站點(diǎn)頁(yè)面中即可看到部署的主題,選擇使用即可,如下圖所示:10 創(chuàng)建Layout Template1.在E:liferay6.1.1liferay-portal-6.1.1-ce-ga2-jajboss-7.1.1standalonedeploymentsROOT.warlayouttpl(本人的目錄是這樣的)中找到custome文件夾,在此文件夾中創(chuàng)建如下三個(gè)文件:xxx.tpl和xxx.wap.tpl內(nèi)容一樣1.1_2_3_2_columns.tpl<div class="columns-1-2-1" id="main-content"

43、 role="main">#if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8)<table class="portlet-layout"><tr><td class="portlet-column portlet-column-only" id="column-1">$cessColumn("colu

44、mn-1", "portlet-column-content portlet-column-content-only")</td></tr></table><table class="portlet-layout"><tr><td class="aui-w50 portlet-column portlet-column-first" id="column-2">$cessColumn("column

45、-2", "portlet-column-content portlet-column-content-first")</td><td class="aui-w50 portlet-column portlet-column-last" id="column-3">$cessColumn("column-3", "portlet-column-content portlet-column-content-last")</td>

46、;</tr></table><table class="portlet-layout"><tr><td class="portlet-column portlet-column-only" id="column-4">$cessColumn("column-4", "portlet-column-content portlet-column-content-only")</td><td cla

47、ss="portlet-column portlet-column-only" id="column-5">$cessColumn("column-5", "portlet-column-content portlet-column-content-only")</td><td class="portlet-column portlet-column-only" id="column-6">$c

48、essColumn("column-6", "portlet-column-content portlet-column-content-only")</td></tr></table><table class="portlet-layout"><tr><td class="portlet-column portlet-column-only" id="column-7">$cessColumn(&

49、quot;column-7", "portlet-column-content portlet-column-content-only")</td><td class="portlet-column portlet-column-only" id="column-8">$cessColumn("column-8", "portlet-column-content portlet-column-content-only")</td&

50、gt;</tr></table>#else<div class="portlet-layout"><div class="portlet-column portlet-column-only" id="column-1">$cessColumn("column-1", "portlet-column-content portlet-column-content-only")</div></div>&

51、lt;div class="portlet-layout"><div class="aui-w50 portlet-column portlet-column-first" id="column-2">$cessColumn("column-2", "portlet-column-content portlet-column-content-first")</div><div class="aui-w50 portlet-c

52、olumn portlet-column-last" id="column-3">$cessColumn("column-3", "portlet-column-content portlet-column-content-last")</div></div><div class="portlet-layout"><div class="portlet-column portlet-column-only" id

53、="column-4">$cessColumn("column-4", "portlet-column-content portlet-column-content-only")</div><div class="portlet-column portlet-column-only" id="column-5">$cessColumn("column-5", "portlet-colu

54、mn-content portlet-column-content-only")</div><div class="portlet-column portlet-column-only" id="column-6">$cessColumn("column-6", "portlet-column-content portlet-column-content-only")</div></div><div class="p

55、ortlet-layout"><div class="portlet-column portlet-column-only" id="column-7">$cessColumn("column-7", "portlet-column-content portlet-column-content-only")</div><div class="portlet-column portlet-column-only" id=&qu

56、ot;column-8">$cessColumn("column-8", "portlet-column-content portlet-column-content-only")</div></div>#end</div>2.在E:liferay6.1.1liferay-portal-6.1.1-ce-ga2-jajboss-7.1.1standalonedeploymentsROOT.warWEB-INF(本人目錄如此)下建一個(gè)liferay-layout-templates-ext.xml<?xml version="1.0"?><!DOCTYPE layout-templates PUBLIC "-/Liferay/DTD Layout Templates 5.2.0/EN&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論