




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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ù)庫83 liferay使用介紹93.1 訪問portal93.2 添加應(yīng)用93.3 管理103.3.1頁面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)頁模板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國際化236.1屬性的國際化236.2 內(nèi)容的國際化247 常用參數(shù)配置247.1 文件存儲(chǔ)路徑247.2 去掉公共頁和私有頁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)前頁面、導(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ù)庫有如下兩種方式(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頁面編輯當(dāng)前頁面,包括:頁面類型,頁面名稱,HTML標(biāo)題,樣式外觀自定義,添加子頁面,訪問權(quán)限管理等操作。頁面布局:為當(dāng)前頁選擇布局。添加頁面時(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ī)組織:公司,銷售部門,市場部門等都是常規(guī)組織,如閔行區(qū)教育局,教育局各個(gè)科室都是常規(guī)組織。位置:分支機(jī)構(gòu),下屬單位等都是存儲(chǔ)單元,如閔行區(qū)教育學(xué)院,區(qū)管各家學(xué)校都是存儲(chǔ)單元。3.4.2 站點(diǎn)站點(diǎn)是一系列頁面組合,這些頁面能夠顯示內(nèi)容,也能提供特定應(yīng)用的訪問路徑。站點(diǎn)的成員可以有高級(jí)權(quán)限去訪問指定的頁面和內(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í)定義所需頁面和網(wǎng)頁內(nèi)容。管理員能夠創(chuàng)建并編輯站點(diǎn)模板,也能夠?qū)ζ錂?quán)限進(jìn)行設(shè)置。3.4.4 網(wǎng)頁模板網(wǎng)頁模板:頁面模板使您能夠在創(chuàng)建頁面時(shí)選擇所需頁面和 portlet 。管理員可以創(chuàng)建和編輯頁面模板,也可以對(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”一詞在英語中解釋為“入口,大門”,中文翻譯為“門戶”。在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)頁的Portal頁面,也許有些Portal主頁制作的更像是一個(gè)桌面系統(tǒng)的界面,更能獲得用戶的認(rèn)可。構(gòu)成Portal頁面的是能夠建立和展現(xiàn)不同內(nèi)容的一系列Portlet。Portal使用Portlet作為可插拔用戶接口組件,提供信息系統(tǒng)的表示層。Portlet是部署在特定容器內(nèi)用來生成動(dòng)態(tài)內(nèi)容的可重用Web組件。Portlet處理從Portal傳遞來的用戶請求,動(dòng)態(tài)生成輸出內(nèi)容的一個(gè)片段,展現(xiàn)在Portal頁面的某個(gè)位置上。Portlet的主要特點(diǎn):Portlet 是基于Java
14、技術(shù)的Web 組件。 由專門的容器管理 Portlet 。 Portlet用于生成動(dòng)態(tài)內(nèi)容。 Portlet只生成標(biāo)記片段,并不產(chǎn)生完整的Web頁面。由Portal負(fù)責(zé)將Portlet片段整合成完整的Portal頁面。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頁面,它由一個(gè)或若干個(gè)Portal頁面組織而成。而每個(gè)Portal頁面又是由一個(gè)或若干個(gè)Portlet窗口構(gòu)成的Portlet是以窗口的形式出現(xiàn)在Portal頁面里。如圖所示是一個(gè)Portal頁面結(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ù)庫服務(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ù)庫中的,幾乎所有的P
17、ortal系統(tǒng)產(chǎn)品需要數(shù)據(jù)庫管理系統(tǒng)的支持。LDAP服務(wù)器主要用在用戶管理、身份認(rèn)證和權(quán)限管理上。有些Portal系統(tǒng)也支持使用數(shù)據(jù)庫來管理用戶身份和權(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ù)庫。對(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)證的麻煩,更是簡化了各種應(yīng)用系統(tǒng)對(duì)用戶及其權(quán)限的一致性維護(hù)管理。2、資源整合:能夠把各種不同應(yīng)用的內(nèi)容聚合到一個(gè)統(tǒng)一的頁面呈現(xiàn)給用戶,實(shí)現(xiàn)同應(yīng)用系統(tǒng)實(shí)時(shí)交換信息。能夠從各種數(shù)據(jù)源如數(shù)據(jù)庫、多種格式的文件檔案、Web頁面、電子郵件等集
19、成用戶所需的動(dòng)態(tài)內(nèi)容。3、定制與個(gè)性化:能夠?yàn)椴煌巧挠脩糁贫ú煌δ軝?quán)限的Portal頁面。同時(shí),用戶自己也能夠按照喜好在規(guī)定的權(quán)限下定制自己風(fēng)格的頁面和內(nèi)容,如可以定制Portal頁面,取舍不同功能和內(nèi)容的Portlet窗口,自行布置Portlet窗口的擺放位置,可以對(duì)Portlet窗口外觀,如標(biāo)題,圖標(biāo),顏色等進(jìn)行個(gè)性化設(shè)置。4、協(xié)作功能:為用戶提供即時(shí)討論,聊天,論壇,電子郵件以及語音或視頻會(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)國紛爭的局面,Portal的發(fā)展和應(yīng)用將會(huì)更加廣闊長遠(yuǎn)。下面介紹幾個(gè)與Portal緊密相關(guān)的技術(shù)標(biāo)準(zhǔn):1、WSDLWeb Service Description LanguageWeb服務(wù)描述語言。WSDL是用來描述Web服務(wù)和說明如何與Web服務(wù)通信的XML語言。WSDL語言使用XML格式來描述信息的接口、訪問格式和處理形式。WSDL描述信
21、息內(nèi)容。2、SOAPSimple Object Access Protocol簡單對(duì)象訪問協(xié)議。SOAP是一種在無中心的分布式環(huán)境下,應(yīng)用系統(tǒng)之間交換結(jié)構(gòu)化信息和特定類型的信息所使用的基于XML的輕量級(jí)協(xié)議。SOAP允許任何信息對(duì)象在任何語言、任何平臺(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),支持多種類型的客戶端,支持本地化和國際化,具備確定的安全性,允許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中(在國外有專門的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國際
25、化6.1屬性的國際化新建liferay portlet時(shí)選中create resource bundle file可自動(dòng)在WEB-INF/src/content/創(chuàng)建Lperties文件,如下圖:也可以在content下綁定具體語言的文件,如Language_zh_CN.properties在此文件中寫入javax.portlet.title.portletName=中文標(biāo)題名稱。6.2 內(nèi)容的國際化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 去掉公共頁和私有頁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ù)庫表group_表,此表里面有許多的社區(qū),在此表的name字段下面尋找我們要默認(rèn)進(jìn)入的站點(diǎn)名稱,替換上面的xxx注意:如果這里是中文字符,需要轉(zhuǎn)換為unicode編碼,如:Virtual.hosts.
29、=u5927u55107.8 event配置Event不但可以portlet到portlet傳值,也可以一個(gè)頁面到另一個(gè)頁面?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)前頁面、導(dǎo)航的名稱Liferay中的導(dǎo)航其實(shí)就是一個(gè)個(gè)的頁面,這個(gè)頁面對(duì)應(yīng)于liferay中的Layout這個(gè)實(shí)體,其實(shí)要獲取頁面/導(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就是頁面/導(dǎo)航的名稱,通過這個(gè)可以獲取父頁面的信息,子頁面的信息等。如<% taglib uri=" prefix="liferay-theme" %><liferay-theme:defineObjects/><%=layout.getName() %><!- 頁
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ù)庫比較.看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的子頁或子portal -我的空間(當(dāng)前用戶能訪問的空間或工作區(qū))dock.vm:管理工具模板 -首頁 -我的賬戶 -登出 -登入 -添加內(nèi)容 -風(fēng)格 -頁面設(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)頁面中即可看到部署的主題,選擇使用即可,如下圖所示: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030特色旅游產(chǎn)業(yè)行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030民宿行業(yè)市場發(fā)展分析及前景趨勢與投資研究報(bào)告
- 2025-2030戲曲音樂文化行業(yè)發(fā)展分析及發(fā)展趨勢與投資前景預(yù)測研究報(bào)告
- 電商行業(yè)個(gè)人原因辭職信范文
- 小學(xué)二年級(jí)班主任藝術(shù)課程計(jì)劃
- 小學(xué)一年級(jí)數(shù)學(xué)下冊多元智能教學(xué)計(jì)劃
- 疫苗接種后不良反應(yīng)處理規(guī)范
- 不同體重指數(shù)的2型糖尿病患者皮膚糖基化終末產(chǎn)物與脈搏波傳導(dǎo)速度的相關(guān)性研究
- 基于LASSO回歸與傾向性評(píng)分匹配研究高尿酸血癥與慢性肺源性心臟病的相關(guān)性
- 基于深度學(xué)習(xí)的COPD肺音特征識(shí)別算法研究
- 預(yù)防人畜共患病課件
- 腎移植圍手術(shù)管理的課件
- 09DX004 民用建筑工程電氣初步設(shè)計(jì)深度圖樣
- 母語對(duì)目標(biāo)語習(xí)得的影響
- 醫(yī)療糾紛處理及防范技巧與案例分析課件
- 昆明市農(nóng)科院嵩明基地種質(zhì)資源圃大棚設(shè)施維修項(xiàng)目清單
- 全過程工程造價(jià)咨詢服務(wù)方案范本
- DB4403T339-2023城市級(jí)實(shí)景三維數(shù)據(jù)規(guī)范
- 心電監(jiān)護(hù)儀故障應(yīng)急預(yù)案
- 冀教版五年級(jí)英語下冊-lesson-19-課件
- 城市軌道交通工程建設(shè)質(zhì)量管理標(biāo)準(zhǔn)化研究的開題報(bào)告
評(píng)論
0/150
提交評(píng)論