Я использую 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
— это неявный объект, доступный в шаблонах. - person Parkash Kumar   schedule 15.01.2016httpServletRequest
объект, вы можете получить его:#set ($serviceContext = $portal.getClass().forName("com.liferay.portal.service.ServiceContextThreadLocal").getServiceContext()) #set ($httpServletRequest = $serviceContext.getRequest())
- person Parkash Kumar   schedule 15.01.2016Unknown directive: #set
@ParkashKumar - person jahra   schedule 15.01.2016ftl
язык в шаблонах, тогда вы можете использовать<#assign>
вместо#set
. - person Parkash Kumar   schedule 15.01.2016<#assign $serviceContext = $portal.getClass().forName("com.liferay.portal.service.ServiceContextThreadLocal").getServiceContext()> <#assign $httpServletRequest = $serviceContext.getRequest()>
- person Parkash Kumar   schedule 15.01.2016Expression $portal is undefined
:( @ParkashKumar - person jahra   schedule 15.01.2016freemarker.engine.restricted.variables=
вportal.properties
и убедитесь, что он не добавляет$portal
в свой список. - person Parkash Kumar   schedule 15.01.2016