Как проверить значение атрибута запроса в freemarker? Я пробовал ‹#if *${RequestParameters['servicesettings']} ??> но получаю ошибки ->
Встретил "*" в строке
Кто-нибудь может помочь?
Как проверить значение атрибута запроса в freemarker? Я пробовал ‹#if *${RequestParameters['servicesettings']} ??> но получаю ошибки ->
Встретил "*" в строке
Кто-нибудь может помочь?
Это зависит от структуры веб-приложения, поскольку сам FreeMarker не предоставляет параметры запроса. (Ну, за исключением случаев, когда фреймворк использует freemareker.ext.servlet.FreemarkerServlet
, который является своего рода расширением для FreeMarker.) Кроме того, обычно вам не следует обращаться к параметрам запроса напрямую из шаблона MVC или чего-либо, относящегося к HTTP/Servlet. .
Что касается сообщения об ошибке, то, что вы написали, имеет несколько синтаксических ошибок... возможно, вы имели в виду <#if RequestParameters.servicesettings??>
(это не JSP - не используйте ${...}
внутри тегов FreeMarker). Для этого потребуется, чтобы у вас было RequestParameters
в модели данных, чего я точно не знаю...
Мы должны написать так:
${Request.requestattribute}
Вы можете использовать
${requestParameters.servicesettings}.
Согласно 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