在liferay velocity模板中检查当前页面url内容

时间:2013-06-19 05:57:25

标签: liferay-6 liferay-velocity liferay-theme

我试图找出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"))

但仍然无法得到任何东西?我错过了什么?我现在如何获得此参数的值?

4 个答案:

答案 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;;

开头的所有网址