现在的位置: 首页 > 综合 > 正文

【Liferay Portal指南四】——JSP Portlet开发

2013年02月09日 ⁄ 综合 ⁄ 共 3489字 ⁄ 字号 评论关闭

JSP Portlet是开发中使用频率最高的开发方式,主要原因有两个:
1、 当配置好Portlet之后,只需要修改JSP文件。而JSP文件支持hot deploy,这就会在开发过程中节省好多等待ant deploy和liferay tomcat startup的时间。
2、 开发流程也相对简单。
推荐的JSP Portlet推荐开发流程如下图,当然也不用完全按照如下流程来做,只要完成相关配置的修改即可。

 

Step1:创建目录myjspportlet
      在目录…/ext-web/docroot/html/portlet/ext下新建目录myjspportlet。

Step2:配置Portlet
      打开文件…/ext-web/docroot/WEB-INF/portlet-ext.xml(portlet-ext.xml是扩展环境中用来定义Portlet的配置文件)。
      对于本例, 添加下列内容到你的portlet-ext.xml(你会发现它与EXT_1很相似,可以直接复制粘贴过去只需要做几个关键的改动)。


注意:
1、 Portlets是通过,<portlet-name>来唯一定义的。因此,你要确保<portlet-name>的唯一性。
2、 要创建JSPPortlet,<portlet-class>属性应该设置为com.liferay.portlet.JSPPortlet。
3、 <init-param>中的<name>值——“view-jsp”不能修改。

下面是对每一个元素的简略介绍:

portlet-name
      Portlet-name元素包括portlet的规范名称.每一个portlet的名称在portlet应用中都是唯一的.

display-name
      Display-name类型包括一个短名称,意图是通过工具来显示它.这个名称通过display-name元素来使用.显示名称不一定唯一.

portlet-class
      Portlet-class元素包括portlet名称的规范类.

init-param
      Init-param元素包含一个名/值对,作为portlet的一个初始化参数.

expiration-cache
     Expiration-cache定义了对于这个portlet的expirationbased缓存.这个参数以秒作为基准时间,在规定时间后portlet过期.-1意味着永不过期.

supports
     Support元素包括了可支持的类型.support也指出portlet的模式.和portlet支持的具体内容类型.所有的portlet必须支持浏览模式.

portlet-info
     Portlet-info定义了portlet的信息.

security-role-ref
    Security-role-ref元素包括一个在Web 应用的代码中,安全角色含义的声明.具体在Liferay中,role-name的含义是规定 可以通过portlet的用户名称.(一个Power 用户可以自定义portal,而用户则不行)

      现在你可以配置你的portlet-ext.xml

 

Step3:配置Portlet实例属性
      添加Liferay具体信息到…/ext-web/docroot/WEB-INF liferay-portlet-ext.xml。
      对于本例, 添加下列内容到你的liferay-portlet-ext.xml中即可。

注意:
这里的<portlet-name>元素的值 EXT_2必须要和portlet-ext.xml中的<portlet-name>元素的值一致的。

 

Step4:定义Portlet名称
      为了能够在portal 中方便查找添加你的portlet, 你需要在…/ext-ejb/classes/content Language-ext.properties中定义名称,通过添加下面这一行:

 
      其中的key值(即javax.portlet.title.EXT_2),是“javax.portlet.title”+“portlet名字”(即在portlet-ext.xml中添加的portlet的<portlet-name>的值)
 
Step5:归类Portlet

      定向到…/ext-web/docroot/WEB-INF/liferay-display.xml。按照你的需要, 添加Portlet归类信息,把你所创建的portlet放入相应的位置。
 
      以上信息主要是为了在添加应用窗口中显示定义的portlet。如果做了Step3,那么最终在添加应用窗口中显示是第三步所定义的名字。在本例中将显示“My JSP Portlet”。添加应用窗口如下图所示,因使用liferay版本不同页面效果会不太一样。

 

 Step5:创建init.jsp
     在你的/myjspportlet目录下,添加一个文件叫init.jsp.在这个文件中,添加下列两行代码:

     这两行代码导入了所有通用类,并且注入了每个portlet使用的通用变量。如果你需要导入portlet具体类或者初始化portlet具体变量。确定要将他们添加到他们的具体目录下的文件init.jsp中, 这是相对于/html/common/init.jsp来说的。

 

Step6:创建view.jsp
      现在,添加一个view.jsp。这个jsp文件将会显示你的JSPPortlet中的内容。本教程中,在jsp中写下“Hello[你的名字]”。问题出来了,portal如何得知怎样加载这些特殊的文件?如果你返回观察添加到portlet-ext.xml中的portlet元素,你将会观察到你初始化了一个view-jsp参数,它的值是/ext/myjspportlet/view.jsp。通过指定这个init-param,你将使得portlet加载一个默认的JSP。

 

Step7:测试
      因为你现在肯能已经搭建起环境,你需要通过在ext目录下执行ant deploy部署这些你做的对你的应用的改变。

访问地址:http://localhost:8080
     利用用户名:test@liferay.com;密码:test登录进入系统。
     在选择应用的窗口中选择我们刚刚添加的Portlet——My JSP Portlet,如果在页面上会增加一个Portlet(如下图),显示出你刚刚添加的内容,那么部署就成功了。

抱歉!评论已关闭.