liferay6.2 使用默认方式实现可配置的portlet

来源:互联网 发布:北京网络职业学院贴吧 编辑:程序博客网 时间:2024/05/29 16:52

在liferay中提供了可配置的portlet,使用得一些同类型的portle可以重用,减少了开发工作量。下面将使用liferay6.2默认的方式实现可配置的portlet。如有不当之处敬请指正。也欢迎大家加入一起讨论群:4270708054270

1、创建一个新的portlet。在第二步时liferay portlet modes 勾上复选框Config。截图如下:


2、打开liferay-portlet.xml文件,在刚创建的portlet节点中添加<configuration-action-class>com.liferay.portal.kernel.portlet.DefaultConfigurationAction</configuration-action-class>
注意:要放在<icon></icon>的后面,截图如下:


3、由于第一步中我们选择了config模型,在portlet.xml中就会添加配置指向的页面,如果我们在创建时未选择config模型,那么此处需要手动配置,并手动创建配置JSP页面。

<init-param>
<name>config-template</name>
<value>/html/configtest/config.jsp</value>
</init-param>

截图如下:

4、编写config.jsp页面,实现配置设置。


在此页面中要注意以下几点:

actionURL的设置,<liferay-portlet:actionURL portletConfiguration="true" var="kk"/>这里必须要设置参数 portletConfiguration="true",指定为配置型的actionURL,

需设置的值name的写法必须按name="preferences--showLocationAddress--"这种格式书写,preferences--自取的变量名--   ,此处的preferences--  --为固定写法,这样写之后liferay会自动进行存储,两个短杠为英文状态的输入值。

此form提交之后将会把设置的值存入持久化层。


在页面中有一段java代码,boolean showLocationAddress_cfg=GetterUtil.getBoolean(portletPreferences.getValue("showLocationAddress",StringPool.TRUE));
从持久化层将设置的数据取出来,此处作用是将我设置的值再次赋给复选框,实现配置页面打开之后复选框的状态为最近一次的操作状态。不然点击提交按钮之后页面重新刷新,虽然值已改变,但是复选框的状态还是缩写页面时的默认状态。


5、编写view.jsp页面,取出配置的值,根据值来判断view的具体显示内容。截图如下:


在此页面中做了一个简单的操作就是取出配置的值,显示出来,通常我们拿到此值就可以实现当此值为真是要做什么。此值为假时要做什么。

6、由于配置的值是存在持久化层。重新启动服务此值也将不会丢失。此外我们可以使用文本框实现页面上每行显示多少字等配置操作。

7、除了使用默认的配置之外,还可以重写DefaultConfigurationAction类实现复杂的portlet配置,我们将在下一篇进行讲解。


0 0
原创粉丝点击