插件方式与扩展方式开发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 应用共享一个类装载器。扩展开发就没有这些问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值