壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 609|回复: 0

JSP-Portlet

[复制链接]
发表于 2010/6/1 10:47:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
JSP Portlet是开发中使用频率最高的开发方式,主要原因有两个:
1

当配置好Portlet之后,只需要修改JSP文件。而JSP文件支持hot deploy,这就会在开发过程中节省好多等待ant deployliferay tomcat startup的时间。

2

开发流程也相对简单。

推荐的JSP Portlet推荐开发流程如下图,当然也不用完全按照如下流程来做,只要完成相关配置的修改即可。

Step1:创建目录myjspportlet

在目录…\ext-web\docroot\html\portlet\ext下新建目录myjspportlet

Step2
:配置Portlet
      
打开文件…\ext-web\docroot\WEB-INF\portlet-ext.xmlportlet-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
定义了对于这个portletexpirationbased缓存.这个参数以秒作为基准时间,在规定时间后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部署这些你做的对你的应用的改变。
访问地址:http://localhost:8080/
     
利用用户名:test@liferay.com;密码:test登录进入系统。
     
在选择应用的窗口中选择我们刚刚添加的Portlet——My JSP Portlet,如果在页面上会增加一个Portlet(如下图),显示出你刚刚添加的内容,那么部署就成功了。

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 15:26 , Processed in 0.016732 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表