Проверьте текущее содержание 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