我正在使用 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 对象?
FreeMarker 变量区分大小写,并且不以
$
符号开头(如速度)。
使用
request
变量。
您可以像
那样使用请求变量<#if request.getParameter("something")??>
我发现这个文件总是有用
此外,使用 $ 可能会给您带来一些问题,因为它没有像在速度中那样使用..
只需使用:themeDisplay.getRequest()
<#assign cookies = themeDisplay.getRequest().getCookies() />
<#list cookies as cookie>
${cookie.name} = ${cookie.value}<br>
</#list>