【软件环境介绍】:
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这个分类下面的内容名称。
本文地址:http://com.8s8s.com/it/it15273.htm