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();
