gpt4 book ai didi

java - liferay 中的 portlet 间通信

转载 作者:行者123 更新时间:2023-12-02 08:13:46 25 4
gpt4 key购买 nike

我是 liferay 的新手。所以,我只想解释一下我的情况。

实际上我的网页上有两个 portlet - 一个位于左侧,另一个位于右侧:

  • 左侧 portlet 包含两个超链接,即 demo1 和 demo2。
  • 我还有另外两个 portlet,即 demo1Portlet 和 demo2Portlet。
  • 将显示“demo1Portlet”,而不是右侧 portlet默认。
  • 现在我要做的是,如果我点击 demo2 链接,那么,右侧portlet 将发生变化,它将显示“demo2Portlet”,如果我单击在 demo1 链接上,它将在右侧显示“demo1Portlet”。

有人知道我如何完成这项任务吗?

请尽快回复我。

我是liftray的新手,所以我不知道这是否可以通过IPC或不通过IPC来实现。请解释一下会发生什么。

谢谢。

最佳答案

有几种不同的方法可以让 portlet 相互通信。大多数内容都包含在 IPC 的文档中。和descendant pages .

就您而言,您应该真正查看 client-side页面:

有了你的基本结构

<a href="javascript:void(0)" class="comm-demo">demo[number]</a>

您将在“发送器 portlet”上拥有此 JS:

// you may need to have jQuery instead of $. Liferay may have its own 
// $ function which jQuery shouldn't mess with.
$( function () {
$('a.comm-demo').click( function(event) {
var txt = $(this).next().val(); // demo<number>
Liferay.trigger('click', {text: txt});
return false;
});
});

然后在“接收 portlet”上:

 Liferay.bind( 
'click',
function(event, data) {
var txt = data.text;
// this will set all class-of-fields to have the text
// "demo<number from above>Portlet"
$('.class-of-fields')[0].html(txt + "Portlet");
// I believe there is a way to minimize/maximize a portlet by
// simulating a mouse click, but research would be needed to
// confirm.
});

关于java - liferay 中的 portlet 间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com