马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
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很相似,可以直接复制粘贴过去只需要做几个关键的改动)。
<portlet> <portlet-name>EXT_2</portlet-name>
<display-name>My JSPPortlet</display-name>
<portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>
<init-param>
<name>view-jsp</name>
<value>/portlet/ext/myjspportlet/view.jsp</value>
</init-param>
<expiration-cache>300</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>My JSP Portlet</title>
</portlet-info>
<security-role-ref>
<role-name>Power User</role-name>
</security-role-ref>
<security-role-ref>
<role-name>User</role-name>
</security-role-ref>
</portlet>
注意:
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>
<portlet-name>EXT_2</portlet-name>
<instanceable>0</instanceable>
</portlet> 注意:
这里的<portlet-name>元素的值 EXT_2必须要和portlet-ext.xml中的<portlet-name>元素的值一致的。 Step4:定义Portlet名称
为了能够在portal 中方便查找添加你的portlet, 你需要在…\ext-ejb\classes\content Language-ext.properties中定义名称,通过添加下面这一行: javax.portlet.title.EXT_2=My JSP Portlet
其中的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放入相应的位置。 <category name="category.test"> <portlet id="EXT_1" /> <portlet id="EXT_2" /> ... </category>
以上信息主要是为了在添加应用窗口中显示定义的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部署这些你做的对你的应用的改变。 |