Fórum

zwei Portlets miteinander verknüpfen

thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
Hallo,

ich wollte mal fragen, ob es eine Möglichkeit gibt, zwei Portlets miteinander zu verknüpfen. Nehmen wir an ich hab schon ein Portlet, in dem ich eine Tabelle von Meldung erstellt hab und jede Person der auf die Tabelle gezeigt wird, soll in dem anderen Portlet erscheint zu haben. Ist das Möglich und falls Ja dann werde ich für ein Paar Tips Dankbar sein

LG
thumbnail
Olaf Kock, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Liferay Legend Postagens: 6403 Data de Entrada: 23/09/08 Postagens Recentes
Klar, das geht.

Heißt "Inter Portlet Communication", hat zwei Optionen: "Public Render Parameters" oder "Events". Ich wollte eigentlich auf eine 6.2-Implementation verweisen, die solche Demos hat und generieren kann (xmlportletfactory), aber die Site scheint down zu sein.
thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
danke für die schnelle Antwort. Wird das auch für Liferay 7.0.3 GA4 gehen?
thumbnail
Olaf Kock, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Liferay Legend Postagens: 6403 Data de Entrada: 23/09/08 Postagens Recentes
Hisham Zoghbi:
danke für die schnelle Antwort. Wird das auch für Liferay 7.0.3 GA4 gehen?


Ja, natürlich (wenn ich das auch effektiv verschleiert habe mit der Erwähnung von 6.2): Xmlportletfactory ist ein Codegenerator, bei dem dieses Feature in den mitgelieferten Beispielen sofort ersichtlich ist - daher mag ich diese Umgebung und verweise gerne darauf.

Inter Portlet Communication (IPC) ist ein JSR-286 Bestandteil, und wurde in Liferay 7 für die OSGi Architektur angepasst (analog zu den OSGi Portlets). Das heißt, die Konzepte sind auch als OSGi-Declarative-Service implementiert. Stichworte, wie gesagt: "Public Render Parameter" und "Event".

Darüber hinaus gibt es natürlich noch Javascript (browser-seitige) Implementationen, bei denen einzelne Portlets einen eigenständigen Kommunikationskanal aufbauen - der ist dann aber abhängig von der verwendeten Frontend-Technologie (ich kann - mangels Erfahrung damit - nichts empfehlen).
thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
hallo Olaf,
ich danke dir noch mal für die Infos. Ich hab mir jetzt zwei Portlets erstellt. Sender und Reciever, bei Sender wurde die folgende Methode implementiert: @ProcessAction(name="producer")
public void producer(ActionRequest request, ActionResponse response){
String message =ParamUtil.getString(request, "message");
QName qname = new QName("http://liferay.com", "producemessage");
response.setEvent(qname, message);
} Und bei @Component "java.portlet.supported-publishing-event=producemessage;http://liferay.com" Und das gegenteil bei Reciever aber anstatt publishing Event, soll processing sein. Ich versuche einen Message von Sender zu Reciever zu schicken, aber ich bekomme den Message auf mein Reciever nicht, also es wurde nicht gezeigt, ob den Message von Sender geschickt wurde.

Ich wäre Dankbar für deine Hilfe
thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
Bei Sender View.jsp wurde das implementiert
<portlet:actionURL name="producer" var="producer"></portlet:actionURL>
<form action="${producer}" method="post">
Enter your message:-
<input type="text" name="<portlet:namespace/> message"/>
<input type="submit">
</form> Und Bei Reciever meine Message : $(message)
thumbnail
Olaf Kock, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Liferay Legend Postagens: 6403 Data de Entrada: 23/09/08 Postagens Recentes
Hat der Receiver auch eine @ProcessEvent-annotierte Methode?
thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
Kann das Problem vllt an meinem URL liegt? falls Ja wo kann man den finden?
LG
thumbnail
Hisham Zoghbi, modificado 6 Anos atrás.

RE: zwei Portlets miteinander verknüpfen

Junior Member Postagens: 32 Data de Entrada: 28/03/17 Postagens Recentes
ja
@ProcessEvent(qname="{http://liferay.com}producemessage")
public void consumeMessage(EventRequest request, EventResponse response){
Event event = request.getEvent();
String message= (String) event.getValue();

request.setAttribute("message", message);
}