在Liferay-EP(Liferay Enterprise Portal)上增加一个portlet(IFrame)

类别:Java 点击:0 评论:0 推荐:

【软件环境介绍】:
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