PortletURL en JavaScript

Una funcionalidad que acabo de descubrir en el Blog de Liferay es crear el PortletUrl en JavaScript.

Un ejemplo de PortletUrl es:

http://localhost:8080/web/guest/home?p_p_id=EDITAR_CUENTA&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_EDITAR_CUENTA_struts_action=%2Feditar_cuenta%2Fview

Aca le estoy pasando el portlet id, el estado del portlet, la fase del ciclo de vida, la acción de struts a ejecutar y 1 parametro (podrian ser muchos más).  Anteriormente la manipulación de esta url era medio complicada, ya que solo se podia generar a traves de JAVA o mediante una concatenación kilometrica de varios strings.  Con esta funcion nos proporciona mayor flexibilidad a la hora de programar.

<script type="text/javascript">
var portletURL = new Liferay.PortletURL(_PHASE);
portletURL.setParameter("key1", "value");
portletURL.setParameter("key2", "value");
portletURL.setPortletId(_PORTLET_ID);
</script>
 
<a href="javascript: portletURL.toString()">Go to</a>

Los valores que puede tomar _PHASE son:

  • ACTION_PHASE
  • RENDER_PHASE
  • RESOURCE_PHASE

También existen los siguientes métodos que permiten crear el PortletUrl según _PHASE:

  • Liferay.PortletURL.createActionURL();
  • Liferay.PortletURL.createRenderURL();
  • Liferay.PortletURL.createResourceURL();

Estos son los métodos restantes de la clase Liferay.PortletURL:

  • setCopyCurrentRenderParameters: function(copyCurrentRenderParameters);
  • setDoAsUserId: function(doAsUserId);
  • setEncrypt: function(encrypt);
  • setEscapeXML: function(escapeXML);
  • setLifecycle: function(lifecycle);
  • setName: function(name);
  • setParameter: function(key, value);
  • setPlid: function(plid);
  • setPortletConfiguration: function(portletConfiguration);
  • setPortletId: function(portletId);
  • setPortletMode: function(portletMode);
  • setResourceId: function(resourceId);
  • setSecure: function(secure);
  • setWindowState: function(windowState);
  • toString: function();
Esta entrada fue publicada en desarrollo, General y etiquetada , . Guarda el enlace permanente.

Una respuesta a PortletURL en JavaScript

  1. hetfield08 dijo:

    Buenas a todos!!

    Mi problema es el siguiente..En el portlet del Asset Publisher me gustaria q en vez de mostrarme el titulo de un contenido y una href con la URL (que al pincharla me redirecciona al detalle de ese contenido ) pudiera redireccionar directamente a esa URL de REF mediante codigo para que directamente me apareciera lo q pasaria si pinchara en ese href (he ampliado funcionalidad en diferentes jsp y por eso no me vale con mostrar el detalle de ese contenido simplemente, tengo q seguir el curso de mostrar el detalle pasando por todas las jsp por las q se pasa normalmente).

    He buscado bastante pero he sido incapaz de saber como redireccionar a la URL q crea el propio AssetPublisher..

    Alguien me podria dar alguna idea??

    Muchas gracias y espero q tenga solucion esto..

Deja un comentario