Liferay Portlets中的事件

时间:2011-11-15 11:10:44

标签: events communication liferay portlet unique-id

在任何portlet应用程序中,如果在两个浏览器选项卡中打开包含portlet的同一页面,那么第一页中的事件与第二页的区别如何?

我想为每个事件分配一个唯一的ID,存储它并将其附加到URL,以便可以共享该链接。

有人可以提出他们的想法吗?

此外,如果在其他计算机上打开页面URL,则页面上显示的数据与第一台计算机上显示的数据相同。这是全球性的。

我该怎样消除这个?

1 个答案:

答案 0 :(得分:1)

JSR-286 (latest Java Portlet Specification)定义服务器端和客户端Inter Portlet通信(IPC)。对于Liferay实现,他们有很好的描述herehere

第一个问题:
  

在任何portlet应用程序中,如果在两个浏览器选项卡中打开包含portlet的同一页面,那么第一页中的事件与第二页的区别如何?

  • 客户端IPC :无法在两个不同的浏览器标签之间触发和监听Liferay javascript事件。因此它们将自动区分。但是,您可以使用基于cookie的方法来实现它(如果感兴趣,请查看here
  • 服务器端IPC :可以使用服务器端IPC在不同客户端窗口之间共享数据(服务器端)(请参阅上面的Liferay链接示例)
第二个问题:
  

我想为每个事件分配一个唯一的ID,存储它并将其附加到URL,以便可以共享该链接。   有人能提出他们的想法吗?

  

此外,如果在其他计算机上打开页面URL,则页面上显示的数据与第一台计算机上显示的数据相同。这是全球设定的。   我该怎样消除这个?

  • 我假设您正在谈论相同的Liferay用户帐户(否则可以按照Liferay中的角色,用户,组,用户组或组织来调整数据范围)。 要为同一用户区分不同计算机之间的数据,您可以使用有关客户端计算机的状态信息存储并传回门户cookie。有关如何在Liferay中设置cookie的信息,请参阅here