2

我正在WebSphere Portal 7 上使用JSF 1.2 开发JSR 286 portlet。我一直在尝试找到一种方法来在同一页面上的两个portlet 之间进行导航。本质上:

  1. 单击 Portlet A 上的按钮。
  2. Portlet B 导航到不同的视图(基于来自 Portlet A 的信息),而 Portlet A 保持与之前相同的视图。

他们使用相同的源,所以我认为我可以通过使用 PhaseListener 和 portlet 命名空间 id 来完成此任务——我已经完成了一些工作,但我不禁认为必须有更好的方法来做这个。

在我继续沿着这条路线走之前,有谁知道我在两个 portlet 之间进行导航的正确方法吗?

4

2 回答 2

2

我为使 portlet 进行通信所做的一项常见事情是使用事件。在您的情况下,您将设置 Portlet A 来发布您的 buttonClick 事件并设置 Portlet B 来处理 buttonClick 事件。在 Portlet B 中,您将设置一些渲染参数,然后在 doView 中使用它来根据需要更新 UI。您还需要在两个 portlet 之间创建一条连接线。

这是 IBM 关于 portlet 通信的文档的链接。那里可能有更多的想法更适合或给你更多的继续。

http://www-10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?lookupName=IBM+WebSphere+Portal+7+Product+Documentation#action=openDocument&res_title=Portlet_communication_wp7&content=pdcontent

于 2013-03-05T23:32:10.263 回答
0

查看Liferay Faces Portlet Bridge 演示

“JSF2 IPC(事件) - 客户”演示可能就是您正在寻找的。为什么你还在使用 JSF 1.2?即使在 WAS 7 上的 WebSphere Portal 7 上,您也可以使用 JSF 2.0。只需使用 Mojorra 库和 PARENT_LAST 类加载。

于 2013-03-05T22:29:50.737 回答