Получение атрибутов запроса в freemarker

Как проверить значение атрибута запроса в freemarker? Я пробовал ‹#if *${RequestParameters['servicesettings']} ??> но получаю ошибки ->

Встретил "*" в строке

Кто-нибудь может помочь?


person zDroid    schedule 21.09.2011    source источник


Ответы (4)


Это зависит от структуры веб-приложения, поскольку сам FreeMarker не предоставляет параметры запроса. (Ну, за исключением случаев, когда фреймворк использует freemareker.ext.servlet.FreemarkerServlet, который является своего рода расширением для FreeMarker.) Кроме того, обычно вам не следует обращаться к параметрам запроса напрямую из шаблона MVC или чего-либо, относящегося к HTTP/Servlet. .

Что касается сообщения об ошибке, то, что вы написали, имеет несколько синтаксических ошибок... возможно, вы имели в виду <#if RequestParameters.servicesettings??> (это не JSP - не используйте ${...} внутри тегов FreeMarker). Для этого потребуется, чтобы у вас было RequestParameters в модели данных, чего я точно не знаю...

person ddekany    schedule 21.09.2011
comment
Понял, у меня работает попробуйте -> Request.requestattribute; вернет атрибут запроса и RequestParameters.somevalue для параметра.. - person zDroid; 26.09.2011

Мы должны написать так:

${Request.requestattribute}
person praveen    schedule 17.11.2011
comment
‹#if RequestParameters.servicesettings??› - person zDroid; 21.11.2011

Вы можете использовать

${requestParameters.servicesettings}.
person venky    schedule 16.11.2012

Согласно JavaDoc FreemarkerServlet:

Он делает все атрибуты запроса, параметров запроса, сеанса и контекста сервлета доступными для шаблонов через переменные Request, RequestParameters, Session и Application.

Переменные области также доступны через автоматическое обнаружение области. То есть писать Application.attrName, Session.attrName, Request.attrName не обязательно; достаточно написать attrName, и если в шаблоне такой переменной не было создано, то она будет искать переменную в Request, затем в Session и, наконец, в Application.

Вы можете просто написать:

${attrName}

чтобы получить значение атрибута запроса (которое вы могли установить в фильтре запроса сервлета, используя request.setAttribute('attrName', 'value')

У меня работало с Freemarker 2.3.27-incubating

person viviansteller    schedule 07.12.2017