Envío de página de comunicación entre portlets

Estoy usando el portal java liferay, en el que hay múltiples portlets. Quiero crear un portlet con un formulario que cuando se envía se recuperan los datos y el resultado específico se muestra en algún otro portlet de página. Pero desafortunadamente estas cosas no van en el camino.

Estaba pensando en usar sesiones pero surgieron 2 problemas.

  1. asignación de valor de javascript a la variable java.
  2. si los valores se pasan a la página en la que se coloca el portlet específico, ese portlet no obtiene los valores.

Luego escuché el concepto de Comunicación entre portlets (IPC) y obtuve ayuda de "liferay en acción", pero el código funciona si ambos portlets se colocan en la misma página, y mi requisito es que un portlet se coloque primero página y cuando se envía el formulario, se redirige a la segunda página, al segundo portlet para obtener los parámetros. Intenté más ejemplos, pero no funciona en mi camino.

Respuesta 1

He encontrado otra forma, relativamente fácil, de probar el wiki de liferay

Respuesta: 2

Según tengo entendido, tiene algunos parámetros de JavaScript que desea pasar a la página siguiente. Sin embargo, puede hacerlo con APPLICATION_SCOPE de PortletSession y puede resolver el problema de convertir los parámetros JS a Java colocando los valores en una entrada. Si el usuario no debe escribir estos vars de entrada y los toma de otro lugar, puede ocultar la entrada:

En tu jsp:

<form>
 <input type="hidden" id="myinput1" name="in1" value="">
 <input type="hidden" id="myinput1" name="in2" value="">
</form>

<script>
var a = "avalue";
var b = "bvalue";
document.getElementById("myinput1").value=a;
document.getElementById("myinput2").value=b;
</script>

Luego envíe el formulario cuando lo necesite. A continuación, podrá hacer esto en el método ProcessAction del portlet:

String a= request.getParameter("in1");
String b= request.getParameter("in2");

PortletSession session = request.getPortletSession();
session.setAttribute("a", a , PortletSession.APPLICATION_SCOPE);
session.setAttribute("b", b , PortletSession.APPLICATION_SCOPE);

En el otro portlet, puede encontrarlo llamando

session.getAttribute("a",PortletSession.APPLICATION_SCOPE);

Esto, por supuesto, si no puede simplemente colocarlos en la URL de la página siguiente.

Respuesta: 3

He desarrollado una aplicación GCM, donde una aplicación de servidor envía notificaciones a la aplicación de Android a través de GCM. Ahora quiero ofrecer esta aplicación a los usuarios, pero ¿cómo trato con el SENDER_ID y la clave API? ...

Tengo una pregunta sobre la autenticación en la aplicación Spring Boot REST. Creo una aplicación pequeña y simple con registro de usuario e inicio de sesión para practicar Spring Rest, Spring Boot, Spring Data y ...

En su documentación de la función ChangeMessageVisibility, Amazon da el siguiente ejemplo: Por ejemplo, tiene un mensaje con un tiempo de espera de visibilidad de 5 minutos. Después de 3 minutos, llamas ...

Si uso una biblioteca (jar) en mi aplicación GAE, y esta biblioteca tendrá una dependencia compilada de la clase x que no está en la lista blanca jre de GAE, ¿se detectaría esto en la ejecución local, implementación o lo haré ...