Из шаблона FreeMarker в веб-приложении Java EE мне нужно получить доступ к sessionID (т.е. HttpSession.getId()
). Короче говоря, он передается стороннему поставщику аналитики, чтобы они могли создавать отчеты о том, что пользователи делают во время сеанса просмотра.
Очевидно, я просто добавляю идентификатор сеанса к объекту модели, который передается во FreeMarker. Однако это приложение немного беспорядочно ... один шаблон FreeMarker может использоваться несколькими контроллерами, передающими различные объекты модели. Для удобства обслуживания было бы гораздо проще, если бы я мог просто получить доступ к идентификатору сеанса из шаблона FreeMaker без необходимости изменения всех этих классов моделей.
Я нашел Документация FreeMarker со ссылкой на область "application", "session" и "request". Однако этот формат не возвращает значение:
${Session.id}
Я подозреваю, что "атрибуты области действия" включают не все методы получения объекта HttpSession
(например, getId()
) ..., а только те значения, которые можно извлечь из HttpSession.getAttribute()
.
Существует ли простой способ доступа к идентификатору сеанса Java EE из шаблона FreeMarker без явной передачи его через объект модели?