Проверьте текущее содержание URL страницы в шаблоне скорости LifeRay

Я пытаюсь выяснить текущее содержание и параметры URL страницы в файле LifeRay Velocity(vm). Таким образом, я могу получить URL текущей страницы.

Я пытался расшифровать URL

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

используя следующий способ

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

Теперь я получаю URL как

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

Сейчас я пытаюсь получить значение empName этим способом.

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

Но все еще не в состоянии ничего получить? Чего мне не хватает? как я могу получить значение этого параметра сейчас?

4 ответа

Решение

Вы можете проверить подстроки в скорости следующим образом:

#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

Если вы хотите проверить наличие параметра запроса, прежде чем проверять его содержимое:

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

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

Протестировано в Liferay 6.1.1 ce ga2

Сравнить текущий URL:

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

или же

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

Это возвращает все URL, начинающиеся с 'demo-demo';

$ ThemeDisplay.getScopeGroup(). GetPathFriendlyURL($themeDisplay.getLayout(). IsPrivateLayout(),$themeDisplay)+$layout.getGroup(). FriendlyURL

это проверит, является ли страница частным макетом и отобразит /[web|group]/[site-name]/

Если URL похож на это:

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

Теперь мы можем декодировать этот URL как:

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

Так я получаю URL как

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

Теперь мы можем получить значение empName следующим образом:

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

Таким образом, мы получим значение $empName=ABC

Другие вопросы по тегам