header_lecciones_v5

Utiliza llamadas Ajax en portlets de Liferay (v6.2)

por Antonio Marcos Dragone, el 6 de enero de 2017

llamadas_ajax_en_portlets

Cuando se desea utilizar llamadas Ajax en los portlets será necesario configurar ciertos parámetros para facilitar la recuperación de los datos enviados desde la página original así como tambien utilizar los métodos prestablecidos del framework MVC que proporciona Liferay.

Configurar el portlet

Los portlets son elementos que se pueden embeber en cualquier página y hasta es posible colocar un portlet repetidas veces en una misma página. Es por esto que Liferay establece un ámbito para cada portlet de forma tal que pueda ser individualizado al ejecutar funciones sobre sus elementos (campos, formularios, botones).

Obedeciendo a esto, cada vez que Liferay genera un elemento dentro de un portlet, se generan identificadores únicos asociando el nombre del ámbito al nombre o identificador del elemento, por ejemplo, si definiéramos un input tipo texto en un archivo JSP, obtendríamos como resultado el código que se muestra a continuación:

En este caso vemos como se agrega un prefijo "_holamundo_WAR_Holamundoportlet_" tanto al nombre como al identificador del campo (generado automáticamente). Este prefijo se compondrá del nombre del portlet (en este caso "holamundo") y un índice en el caso de tener varios portlets en la página.

Estos prefijos deberán tenerse en cuenta cuando se recuperan los campos durante una llamada AJAX ya que para el ejemplo, la variable a recuperar no será "nombre" sino "_holamundo_WAR_Holamundoportlet_nombre". Es posible modificar este comportamiento si se configura el portlet consecuentemente.

 Omitir prefijos de ámbito en las variables

Es necesario modificar el archivo liferay-portlet.xml incluyendo los siguientes parámetros dentro del bloque <portlet />:

<requires-namespaced-parameters>false</requires-namespaced-parameters><ajaxable>true</ajaxable>

Lo guardamos y podremos acceder a las variables directamente por su nombre, lo que para el ejemplo anterior sería "nombre".

Referencias:

LUIS PEÑARRUBIA

Conoce las claves para tener una transformación digital ágil

 

Temas:Tecnologia e Innovación

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal