`
115893520
  • 浏览: 140428 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

[开发] 插件方式与扩展方式开发portlet

阅读更多

     liferay的界面真是丑啊!!!!!
     刚开始,只能从hello world开始做。
     插件方式:
     先新建一个java工程。
     单单一个简单的portlet,三个文件就可以描述了。分别是liferay-display.xml,liferay-portlet.xml,portlet.xml
     portlet.xml配置文件主要要做的改动在这里:
     <portlet>
<portlet-name>名字</portlet-name>
<display-name>名字</display-name>

     <portlet-class>自己的java类名,继承javax.portlet.GenericPortlet</portlet-class>
<init-param>
<name>只是名字而已</name>
<value>/jsp名</value>
</init-param>
     liferay-portlet.xml的配置:
     <liferay-portlet-app>
<portlet>
<portlet-name>跟上面一样的名字</portlet-name>
<instanceable>true</instanceable>
</portlet>
     liferay-display.xml:
      <display>
<category name="名字">
<portlet id="上面的名字"></portlet>
</category>
      </display>
在java文件里重写方法,edit,help,view,init等。
将jsp页面跟WEB-INF一起打成war包,然后登录,点增加应用(add application)后,点最下面的install more applications增加我们刚做好的应用。在加载的页面中,点upload file标签,点浏览按钮,加入我们刚打的war包,最后install。
   扩展方式:
   描述文件变成5个,因为用了struts。liferay-display.xml,liferay-portlet-ext.xml,portlet-ext.xml,structs-config.xml,tiles-defs.xml
   打开portlet-ext.xml,加入下面的文字:
<portlet>
  <portlet-name>名字</portlet-name>
  <display-name>显示名字</display-name>
  <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>
  <init-param>
   <name>名字</name>
   <value>/ext/自建文件夹名字/view</value>
  </init-param>
  接着我们打开liferay-portlet-ext.xml,在 <liferay-portlet-app></liferay-portlet-app> 中间添加如下内容:
<portlet>
  <portlet-name>上面名字</portlet-name>
  <struts-path>ext/上面文件夹名字</struts-path>
  <use-default-template>false</use-default-template>
</portlet>
接着打开struts-config.xml
加入以下部分:
  <action path="/ext/上面文件夹名字/view" forward="portlet.ext.my_portlet.view" />
此处的path应与portlet-ext.xml中的value相同
下一步,打开tiles-defs.xml,加入以下部分:
<definition name="portlet.ext.文件夹名字" extends="portlet" />
<definition name="portlet.ext.文件夹名字.view" extends="portlet.ext.上面portlet名字">
  <put name="portlet_content" value="/portlet/ext/上面文件夹名字/view.jsp" />
</definition>
在ext\ext-web\docroot\html\portlet\ext路径下新建一个名为my_portlet的文件夹,然后我们新建一个名为view.jsp的文件,内容如下:
Hello World!
然后点添加应用就能看见它了
最后说下,portlet的运行过程。
首先分析portlet-ext.xml找到<value>/ext/自建文件夹名字/view</value>,然后 对应struts里边的<action path="/ext/上面文件夹名字/view" forward="portlet.ext.文件夹名字.view" />然后forward到tiles-defs.xml里面找到jsp路径,成功。
   表面上来看区别,插件开发跟扩展开发的区别在于扩展看法不用自己建java文件,别的好像没大区别。但是插件开发做的是一个独立的 web 应用,它可以单独布署到应用服务器上,同时它又是 Liferay 的一个(或一组)Portlet,这要求这个单独的应用和 Liferay 应用使用同一个类装载器(class loader),也就是多个 web 应用共享一个类装载器。扩展开发就没有这些问题。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics