我试图找出liferay Velocity(vm)文件中的当前页面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))
现在我正在获取网址
/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"))
但仍然无法得到任何东西?我错过了什么?我现在如何获得此参数的值?
答案 0 :(得分:1)
您可以通过以下方式检查速度子串:
#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中测试
答案 1 :(得分:0)
如果url就像这样:
http://localhost:8080/web/guest/sign-in?p_p_id=45&p_p_lifecycle=0&_58_redirect=%2Fgroup%2Femployee%2FmainForm%3FempName%3DABC
现在我们可以将此网址解码为:
#set($url= $theme_display.getURLCurrent())
#set ($decodedUrl=$httpUtil.decodeURL($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
的值答案 2 :(得分:0)
$ themeDisplay.getScopeGroup()。getPathFriendlyURL($ themeDisplay.getLayout()。isPrivateLayout(),$ themeDisplay)+ $ layout.getGroup()。friendlyURL
这将检查页面是否为私有布局,并将显示/ [web | group] / [site-name] /
答案 3 :(得分:0)
比较当前网址:
if($portal.getCurrentURL($request) == "/home")
或
if($portal.getCurrentURL($request).indexOf("/demo-demo")>=0)
这将返回以&#39; demo-demo&#39;;
开头的所有网址