Liferay Freemaker:如何在模板中获取Request对象?

问题描述 投票:0回答:3

我正在使用 Liferay 6.2 和 freemaker 作为网页内容模板。我需要在模板中获取请求对象。当我尝试使用

${Request.getRequest()}
时,它会抛出错误
Expression Request is undefined
。 完整代码在这里

<#assign userService=utilLocator.findUtil('my-portlets', org.test.service.UserService')>
 <#if userService.isUser(Request.getRequest())>
     <h1>is User</h1>
 </#if>

我对userService的处理方法

public Boolean isUser(HttpServletRequest request) {
    //some logic
    return true;
}        

如何在 freemaket ftl 模板中获取 Request 对象?

liferay freemarker liferay-theme
3个回答
1
投票

FreeMarker 变量区分大小写,并且不以

$
符号开头(如速度)。

使用

request
变量。


1
投票

您可以像

那样使用请求变量
<#if request.getParameter("something")??>

我发现这个文件总是有用

https://github.com/agmip/liferay-portal-impl/blob/master/src/com/liferay/portal/freemarker/FreeMarkerVariablesImpl.java

此外,使用 $ 可能会给您带来一些问题,因为它没有像在速度中那样使用..


0
投票

只需使用:themeDisplay.getRequest()

<#assign cookies = themeDisplay.getRequest().getCookies() />
<#list cookies as cookie>
  ${cookie.name} = ${cookie.value}<br>
</#list>
© www.soinside.com 2019 - 2024. All rights reserved.