I cookie ci aiutano a fornire i nostri servizi.

Utilizzando tali servizi, accetti l'utilizzo dei cookie da parte nostra. Per saperne di piu'

Approvo

Creare una PortletURL con Liferay è molto semplice grazie alle taglib fornite con il portale.

Ma se avessimo la necessità di creare delle URL a runtime, in base al valore di qualche campo di un form? Dovremmo utilizzare altre librerie, con Javascript.

Se fossimo all'interno di una JSP, creare una URL sarebbe abbastanza immediato:

  • <liferay-portlet:actionURL />
  • <liferay-portlet:renderURL />
  • <liferay-portlet:resourceURL />

L'utilizzo delle taglib però ci consente di creare di fatto delle URL cablate all'interno della pagina; tuttavia a volte può essere necessario dover creare una URL programmaticamente e per fortuna ci vengono incontro le librerie Javascript fornite dal portale. Ecco come fare:

<aui:script use="liferay-portlet-url">
    var portletURL = Liferay.PortletURL.createRenderURL();
    portletURL.setPortletId('<%=PortletKeys.SOME_PORTLET %>');
    portletURL.setPlid(15932);
    portletURL.setWindowState('<%=LiferayWindowState.POP_UP.toString() %>');
    portletURL.setParameter('param1', param1);
    portletURL.setParameter('param2', param2);
    portletURL.setParameter('mvcPath', '/html/my_portlet/my_page.jsp');

    // Ora è possibile usare la URL
    console.log(portletURL.toString());
</aui:script>

Allo stesso modo è possibile creare anche URL di altro tipo a seconda delle necessità:

  • Liferay.PortletURL.createActionURL()
  • Liferay.PortletURL.createPermissionURL()
  • Liferay.PortletURL.createResourceURL()
  • Liferay.PortletURL.createURL()

Se siete curiosi potete consultare i sorgenti del modulo: liferay-portal-6.2-ce-ga3\tomcat-7.0.42\webapps\ROOT\html\js\liferay\portlet_url.js.