Существует несколько способов общения портлетов друг с другом. Большинство из них описаны в документации МПК и потомке .
В вашем случае вы действительно должны взглянуть на страницу клиента :
С вашей базовой структурой
<a href="javascript:void(0)" class="comm-demo">demo[number]</a>
Вы бы включили этот 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;
});
});
Затем в «принимающих портлетах»:
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.
});