最新最全的Portlet 通信过程详解

本文通过详细的步骤介绍了 JSR 168 Portlet 通信的场景以及实现它们之间通信的过程。

Portlet 通信过程详解

Portal开发过程中,Theme 与 portlet 之间的通信,以及 portlet 之间的通信是开发人员常常遇到的问题。通常 Portlet 之间需要能够互相通信,即一个 portlet 的状态发生改变,要通知其他的 portlet,这些收到通知的 Portlet 状态也要做相应的改变。根据 JSR 168 规范,Portlet 由容器管理,它们之间是相互独立的,并不共享 Session 对象。那么如何在 Portlet 之间传递参数呢?在本文中,将根据不同应用场景介绍参数传递的方式。

IBM Rational Application Developer V7.0 和 IBM Rational Software Architect V7.0 是 IBM Rational 软件交付平台产品系列中的第一款产品,它们包含了对 IBM WebSphere Portal V6.0 开发的完整支持。在下面的实例中,我们以 IBM Rational Software Architect V7.0 为开发平台,对 Portlet 的参数传递进行介绍。

概念介绍

首先,我们先介绍一些 portal 的基本概念。

Portal 的定义

Portal 是一个基于 web 的应用程序,它主要提供个性化、单点登录、不同来源的内容整合以及存放信息系统的表示层。

Portlet 的定义

Portlet 是基于 java 技术的 web 组件,它由 portlet 容器管理、并处理请求,并动态生成输出内容。就像 servlets 是专为将合成页面里的内容聚集在一起而设计的。通常请求一个 portal 页面会引发多个 portlets 被调用。每个 portlet 都会生成标记段,并与别的 portlets 生成的标记段组合在一起嵌入到 portal 页面的标记内。

Portal 规范

为规范 Portal,SUN 于 2003 年底制定了 JSR168,它定义了 portlet 标准,并给出了一个实现接口。

Portlet 组成

每个 portlet 页面由一个或多个 portlet 窗口组成,每个 portlet 窗口又分为两部分:一个是主题外观(Theme),它决定了 portlet 窗口的标题条、控制和边界的样式;另一个是 portlet 段,它由 portlet 应用填充。

同一页面内的不同 portlet 间的通信

对放在同一个页面上的 Portlet.,如果其中的某个 Portlet 做了提交等操作导致 portal 刷新, 这个页面内的每一个 portlet 都会被 render。要实现参数的传递通常有 3 个步骤:定义源 portlet,定义目标 portlet,关联源 portlet 和目标 portlet。

创建发送端 Portlet

首先我们先建立一个Portlet Project,点击Next


图 1. 新建 Portlet Project
图 1. 新建 Portlet Project

Project name中输入MyProjectprojTarget Runtime选择Websphere Portal v6.0,在Portlet API中选择JSR 168 Portlet,选中Create a Portlet,在Project Name中输入SenderPortlet,在Portlet Type中选择Basic Portlet,选择Show Advanced Settings,点击Next


图 2. 填写 Portlet Project 基本属性
图 2. 填写 Portlet Project 基本属性

Project Facets面板中,选中Java,在version中选择1.4,其他项保持不变,点击Next


图 3. 配置 Facets 属性
图 3. 配置 Facets 属性

Portlet Settings对话框中修改Package Prefxcom.ibm.myportlet,其他选项保持默认,点击Finish


图 4. 修改 Portlet 配置参数
图 4. 修改 Portlet 配置参数

至此,我们已经创建了一个新的 Portlet 项目,其中包含一个名称为 SenderPortlet 的 Portlet。

创建接收端 Portlet

Project中点击右键,点击New->Portlet,弹出 Portlet 创建向导对话框;


图 5. 新建 ReceiverPortlet
图 5. 新建 ReceiverPortlet

Project中选择MyPortletproj,在Project name中输入ReceiverPortletPortlet中选择Baisc Portlet,点击Next


图 6 Portlet 属性
图 6 Portlet 属性

Portlet Settings对话框中修改Package Prefxcom.ibm.myportlet,其他选项保持默认,点击Finish


图 7. 修改 Portlet 配置参数
图 7. 修改 Portlet 配置参数

这样我们就创建了ReceiverPortlet,并把它加入到了MyPortletproj项目中。

SenderPortlet上点击右键,点击Coorperative->EnablethisProtlettoSendData(Source) …


图 8. Portlet 协作-发送端配置
图 8. Portlet 协作-发送端配置

Coorperative对话框中,在输入框DataTypeURI中输入http://myportletproj#MyDataType,在Java Type中输入java.lang.String,点击Next


图 9. 定义发送的数据类型
图 9. 定义发送的数据类型

Property Caption中保留默认值outputProperty Property,在Action Caption中保留默认值SourceAction Action,点击Next


图 10. 定义发送端的 Action 名称和参数名称
图 10. 定义发送端的 Action 名称和参数名称

点击Finish


图 11. 使能发送数据
图 11. 使能发送数据

SenderPortletprocessAction代码片断。我们在上面定义了发送的参数名称为outputProperty


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-619695/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14789789/viewspace-619695/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值