Я сталкиваюсь с проблемой при доступе к данным сеанса в jsp с использованием тега свойств struts2 только в первый раз, если я перехожу на другую страницу и возвращаюсь, тогда данные сеанса назначаются нормально. Используя скрипты jsp в jsp, он отлично работает каждый раз в первом случае.
Код класса действия, используемый для установки данных сеанса:
HttpSession httpSession = ServletActionContext.getRequest().getSession();
httpSession.setAttribute("userName","User1");
Код JSP для чтения данных сеанса в переменной JS:
var userName = '<s:property value="#session['userName']"/>';
var userName1 = '<%=session.getAttribute("userName").toString()%>';
Просмотр исходного вывода после загрузки страницы в первый раз:
var userName = '';
var userName1 = 'User1';
Просмотр исходного вывода после загрузки страницы во второй раз:
var userName = 'User1';
var userName1 = 'User1';
Если это из-за неправильного синтаксиса, то после второй перезагрузки он также не должен работать, если из-за того, что сеанс не включен на странице jsp, тогда session.getAttribute не должен приносить результат в первый раз. Может ли кто-нибудь помочь мне понять, почему это ведет себя так, есть ли что-то, что я упускаю или делаю неправильно.
Спасибо,