Liferay
PortletURL in JavaScript
Since few months ago I want to blog post about the new
Liferay functionality that let you build PortletURLs using JavaScript only.There are many places you can apply this
new way of generating PortletURLs. Imagine a big list of links on your
portlet, instead of download repeated hundreds urls from the server site you
can simply create a javascript function that retuns a PortletURL instance and
set on the fly the parameters you need. And now, you can simply integrate your
pure javascript files (.js) with PortletURLs, without over passing it as
parameter for your javascript constructor or another work-arround came from our
misterious mind.
The usage of this functionality using JavaScript is very
simple:
<script>
var portletURL = new
Liferay.PortletURL();
portletURL.setParameter("key1",
"value");
portletURL.setParameter("key2",
"value");
portletURL.setPortletId(86);
alert( "that is the url: " + portletURL.toString()
);
</script>
Or you can simply wrap it into a javascript function:
<script>
function createRowURL( row ) {
var portletURL =
new Liferay.PortletURL();
portletURL.setParameter("rowNumber", row );
return
portletURL.toString();
}
alert( "row1: " + createRowURL(1) );
alert( "row2: " + createRowURL(2) );
</script>
If you want to know what methods you can play with the
JavaScript Liferay.PortletURL you can take a quick look on the methods below:
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();
I've also created some shortcuts for diferent kind of urls
on the portal:
var actionURL = Liferay.PortletURL.createActionURL(); // =
new Liferay.PortletURL('ACTION_PHASE');
var renderURL = Liferay.PortletURL.createRenderURL(); // =
new Liferay.PortletURL('RENDER_PHASE');
var resourceURL = Liferay.PortletURL.createResourceURL(); //
= new Liferay.PortletURL('RESOURCE_PHASE');
var permissionURL =
Liferay.PortletURL.createPermissionURL(portletResource, modelResource,
modelResourceDescription, resourcePrimKey);
No comments:
Post a Comment