1. 程式人生 > >liferay6.2 使用預設方式實現可配置的portlet

liferay6.2 使用預設方式實現可配置的portlet

在liferay中提供了可配置的portlet,使用得一些同類型的portle可以重用,減少了開發工作量。下面將使用liferay6.2預設的方式實現可配置的portlet。如有不當之處敬請指正。也歡迎大家加入一起討論群:4270708054270

1、建立一個新的portlet。在第二步時liferay portlet modes 勾上覆選框Config。截圖如下:


2、開啟liferay-portlet.xml檔案,在剛建立的portlet節點中新增<configuration-action-class>com.liferay.portal.kernel.portlet.DefaultConfigurationAction</configuration-action-class>
注意:要放在<icon></icon>的後面,截圖如下:


3、由於第一步中我們選擇了config模型,在portlet.xml中就會新增配置指向的頁面,如果我們在建立時未選擇config模型,那麼此處需要手動配置,並手動建立配置JSP頁面。

<init-param>
<name>config-template</name>
<value>/html/configtest/config.jsp</value>
</init-param>

截圖如下:

4、編寫config.jsp頁面,實現配置設定。


在此頁面中要注意以下幾點:

actionURL的設定,<liferay-portlet:actionURL portletConfiguration="true" var="kk"/>這裡必須要設定引數 portletConfiguration="true",指定為配置型的actionURL,

需設定的值name的寫法必須按name="preferences--showLocationAddress--"這種格式書寫,preferences--自取的變數名--   ,此處的preferences--  --為固定寫法,這樣寫之後liferay會自動進行儲存,兩個短槓為英文狀態的輸入值。

此form提交之後將會把設定的值存入持久化層。

在頁面中有一段java程式碼,boolean showLocationAddress_cfg=GetterUtil.getBoolean(portletPreferences.getValue("showLocationAddress",StringPool.TRUE));
從持久化層將設定的資料取出來,此處作用是將我設定的值再次賦給複選框,實現配置頁面開啟之後複選框的狀態為最近一次的操作狀態。不然點選提交按鈕之後頁面重新重新整理,雖然值已改變,但是複選框的狀態還是縮寫頁面時的預設狀態。

5、編寫view.jsp頁面,取出配置的值,根據值來判斷view的具體顯示內容。截圖如下:


在此頁面中做了一個簡單的操作就是取出配置的值,顯示出來,通常我們拿到此值就可以實現當此值為真是要做什麼。此值為假時要做什麼。

6、由於配置的值是存在持久化層。重新啟動服務此值也將不會丟失。此外我們可以使用文字框實現頁面上每行顯示多少字等配置操作。

7、除了使用預設的配置之外,還可以重寫DefaultConfigurationAction類實現複雜的portlet配置,我們將在下一篇進行講解。