Java
Java

Reputation: 2489

Check current page url contents in liferay velocity template

I am trying to find out current page url contents and parameters in liferay Velocity(vm)file. I am able to get current page url by this way.

I have tried to decode url

 http://localhost:8080/web/guest/sign-in?p_p_id=45&p_p_lifecycle=0&_58_redirect=‌​%2Fgroup%2Femployee%2FmainForm%3FempName%3DABC

using following way

#set($absoluteUrl= $theme_display.getURLCurrent())
#set ($test=$httpUtil.decodeURL($absoluteUrl)) 

Now I am getting url as

/web/guest/sign-in?p_p_id=58&p_p_lifecycle=0&_58_redirect=/group/employee/mainForm?empName=ABC

Now I am trying to get value of empName by this way.

#set($empName= $request.getParameter("empName"))

But still unable to get anything? What I am missing? how can I get value of this parameter now?

Upvotes: 1

Views: 9203

Answers (4)

mithunSalinda
mithunSalinda

Reputation: 330

Compare current URL:

if($portal.getCurrentURL($request) == "/home")

or

if($portal.getCurrentURL($request).indexOf("/demo-demo")>=0)

This returns all the URLs starting with 'demo-demo';

Upvotes: 0

randombrad
randombrad

Reputation: 11

$themeDisplay.getScopeGroup().getPathFriendlyURL($themeDisplay.getLayout().isPrivateLayout(),$themeDisplay)+$layout.getGroup().friendlyURL

this will check if the page is private layout and will display /[web|group]/[site-name]/

Upvotes: 0

Java
Java

Reputation: 2489

If url is like in this way:

 http://localhost:8080/web/guest/sign-in?p_p_id=45&p_p_lifecycle=0&_58_redirect=‌​%2Fgroup%2Femployee%2FmainForm%3FempName%3DABC

Now we can decode this url as :

#set($url= $theme_display.getURLCurrent())
#set ($decodedUrl=$httpUtil.decodeURL($url)) 

So I am getting url as

/web/guest/sign-in?p_p_id=58&p_p_lifecycle=0&_58_redirect=/group/employee/mainForm?empName=ABC

Now we can get value of empName by this way:

#set($empName=$decodedUrl.split("empName=").get(1)) 

So we will get value of $empName=ABC

Upvotes: 0

Alessandro Alessandra
Alessandro Alessandra

Reputation: 1065

You can check substrings in velocity by this:

#set ($url = $themeDisplay.getURLCurrent())

#if($url.contains("&empName=ABC"))
The url contains the string <b>&empName=ABC<b>
#else
The url does not contain the string <b>&empName=ABC</b>
#end

If you want to check for request parameter existance prior to check its content:

#set($empName = $request.getParameter("empName"))

#if (!$empName) 
<h1>Parameter not found</h1>
#else
<h1>Parameter found: $empName</h1>
#end`

Tested in Liferay 6.1.1 ce ga2

Upvotes: 1

Related Questions