Получение атрибутов запроса в freemarker - PullRequest
5 голосов
/ 21 сентября 2011

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

Обнаружено "*" в строке

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

Ответы [ 4 ]

2 голосов
/ 21 сентября 2011

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

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

1 голос
/ 16 ноября 2012

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

${requestParameters.servicesettings}.
1 голос
/ 17 ноября 2011

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

${Request.requestattribute}
0 голосов
/ 07 декабря 2017

Согласно 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...