J'ai un problème avec la communication inter-portlet dans Liferay. Deux portlets communiquent via des événements.Inter-Portlet-Communication - Liferay
Auteur:
<supported-publishing-event xmlns:x='http://liferay.com'>
<qname>x:aufgabeInfo</qname>
</supported-publishing-event>
Listener:
<supported-processing-event xmlns:x='http://liferay.com'>
<qname>x:aufgabeInfo</qname>
</supported-processing-event>
événement:
<event-definition xmlns:x='http://liferay.com'>
<qname>x:aufgabeInfo</qname>
<value-type>java.lang.String</value-type>
</event-definition>
Sender-portlets:
<a onclick="selectedEntry('${aufgabe.aufgabenName}', '${aufgabe.aufgabenID}');">
${aufgabe.aufgabenName} </a><br/>
L'événement onclick appelle une méthode ProcessAction via un appel ajax.
function selectedEntry(name, id){
console.log("in click");
var url = '<portlet:actionURL name="open"/>';
$.ajax({
type: "POST",
url: url,
data: {"name": name, "ID": id},
dataType: "json",
success: function(){
console.log("in success");
},
});
Et la méthode ProcessAction de définir un événement pour Commincation. Ainsi, le portlet Listener-Portlet reçoit cet événement dans la méthode ProcessEvent.
Event event = request.getEvent();
String jsonString = (String) event.getValue();
Mon problème est que j'ai besoin du jsonString en javascript. Avec un onclick-Event, il n'actualise pas toute la page, mais la communication fonctionne. Avec un bouton, il rafraîchit toute la page, mais la communication ne fonctionne pas.
Une idée?