生活中的内部portlet通信

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

实际上我的网页上有两个portlet – 一个在左侧,另一个在右侧:

  • 他左侧的portlet包含两个超链接,例如demo1和demo2。
  • 我还有另外两个portlet说demo1Portlet和demo2Portlet。
  • 默认情况下将显示右侧portlet“demo1Portlet”,而不是右侧。
  • 现在我要做的是,如果我点击demo2链接,那么右侧portlet将会改变,它将显示“demo2Portlet”,如果我点击demo1链接,那么它将在右侧显示“demo1Portlet”。

任何人都可以知道如何完成这项任务吗?

请尽快回复我。

我不熟悉liftray,所以我不知道这可以通过IPC还是没有它来实现。 请解释一下会有什么方法。

谢谢。

有几种不同的方法让portlet相互通信。 大多数都包含在IPC和后代 页面的文档中。

在您的情况下,您应该真正查看客户端页面:

有了你的基本结构

demo[number] 

你会在“发射器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 Liferay.trigger('click', {text: txt}); return false; }); }); 

然后在“接收portlet(s)”:

  Liferay.bind( 'click', function(event, data) { var txt = data.text; // this will set all class-of-fields to have the text // "demoPortlet" $('.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. });