1

我正在尝试找出 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)) 

现在我得到的网址为

/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

4 回答 4

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 中测试

于 2013-06-19T08:05:58.517 回答
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 的值

于 2013-06-27T14:59:29.477 回答
0

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

这将检查页面是否为私有布局并显示 /[web|group]/[site-name]/

于 2015-02-18T21:39:18.203 回答
0

比较当前网址:

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

或者

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

这将返回所有以 'demo-demo' 开头的 URL;

于 2015-04-22T09:31:06.060 回答