【軟體環境介紹】:
1,我使用的是liferay-ep-2.0.0-jboss-tomcat版(下面都簡稱為《liferay-ep 2》),我将她安裝在D:/newPortalServer目錄中。
2,使用eclipse作為IDE,用UltraEdit作為主要源碼編輯器。
我的習慣是在源碼編輯的差不多之後,使用eclipse來進行編譯等處理。
3,對應版本的源代碼解壓在D:/java_workspace/liferay-portal目錄中。(下面将簡稱《liferay-portal》。)
4,我這裡要部署的内容是放在/server/default/deploy/ext.ear/目錄下的,
相對于liferay-ep 2的/server/default/deploy/liferay-portal.ear/目錄。
是以下面說的portal-web-complete.war,就是/server/default/deploy/ext.ear/portal-web-complete.war目錄,其他依此類推。
下面我說的《WEB-INF》目錄就是指/server/default/deploy/ext.ear/portal-web-complete.war/WEB-INF目錄,
也就相對于liferay-ep 2的/server/default/deploy/liferay-portal.ear/portal-web-complete.war/WEB-INF目錄。
5,下面部分XML配置檔案,都是“XX-ext.xml”形式的,都是參照/WEB-INF/XX.xml檔案建立的。使用“-ext.xml”檔案是為了和liferay-ep 2本身提供的相差別。
【目标】:
增加一個簡單的IFrame,用于展現一個簡單OA應用。
【步驟】:
1,到http://sourceforge.net/project/showfiles.php?group_id=49260下載下傳對應的SRC。
我下載下傳的是liferay-ep-2.0.0-src.zip。
2,在liferay-portal/oa/src/com/liferay/portlet/oa目錄下面,
仿照http://www.liferay.com/documentation/api/portal-ejb/com/liferay/portlet/IFramePortlet.java.html,
建立自己的IFrameOAPortlet.java。
3,在eclipse中對源碼進行編譯。将liferay-portal/classes/com/liferay/portlet/oa目錄下産生的IFrameOAPortlet.class
檔案複制到D:/newPortalServer/server/default/deploy/ext.ear/portal-ejb.jar/com/liferay/portlet/oa目錄。
4,在/WEB-INF/portlet-ext.xml檔案中增加:
<portlet>
<portlet-name>EXT_100</portlet-name>
<display-name>test_IFrame</display-name>
<portlet-class>com.liferay.portlet.oa.IFrameOAPortlet</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
</supports>
<resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>
<portlet-preferences>
<preference>
<name>src</name>
<value>http://oaserver/oapath/db.nsf/formToDo?OpenForm</value>
</preference>
<preference>
<name>auth</name>
<value>true</value>
</preference>
<preference>
<name>auth-type</name>
<value>form</value>
</preference>
<preference>
<name>form-method</name>
<value>post</value>
</preference>
<preference>
<name>basic-auth-user-name</name>
<value>username</value>
</preference>
<preference>
<name>basic-auth-password</name>
<value>password</value>
</preference>
<preference>
<name>hidden-variables</name>
<value>var1=hello;var2=world</value>
</preference>
</portlet-preferences>
<security-role-ref>
<role-name>Power User</role-name>
</security-role-ref>
<security-role-ref>
<role-name>User</role-name>
</security-role-ref>
</portlet>
這裡主要需要注意的是:
portlet-name:這裡的名字需要和之後步驟相對應。這裡是“EXT_100”。
portlet-class:這裡就是此前寫的那個class“com.liferay.portlet.oa.IFrameOAPortlet”了。
portlet-preferences:這部分的内容還不很确定,估計此後主要也就是修改這一部分。
5,在/WEB-INF/liferay-portlet-ext.xml檔案中增加:
<portlet id="EXT_100" struts-path="oa_todolist" />
這裡主要需要注意的是:
id:要對應之前的portlet-name,這裡是“EXT_100”。
struts-path:對于IFrame而言,這個路徑是沒有用的。
6,在/WEB-INF/liferay-display.xml檔案中增加:
<category name="category.oa_todolist">
<portlet id="EXT_100" />
</category>
這裡主要需要注意的是:
category name:這個要和之後步驟相對應。這裡是“category.oa_todolist”。
portlet id:要對應之前的portlet-name,這裡是“EXT_100”。
7,在/portal-ejb.jar/content目錄下的Language_zh.properties.native檔案中增加所需要的用于界面顯示的文字資訊。
注意:建議使用Window作業系統自帶的記事本程式來進行這個檔案的修改。因為要注意這個檔案的編碼格式。
本例中需要增加的有兩個:
category.oa_todolist=OA待辦事宜(測試)
javax.portlet.title.EXT_100=待辦事宜(測試)
這裡主要需要注意的是:
7.1,為category.oa_todolist這個分類設定一個用于界面顯示的分類名稱。
7.2,為具體的這個ID是“EXT_100”的portlet設定一個顯示在category.oa_todolist這個分類下面的内容名稱。