【发布时间】:2017-12-05 16:03:25
【问题描述】:
在用户首次访问时,我在 JSP 中检索会话数据时遇到问题。
我的 Struts 操作中有一个会话范围的 bean“上下文”,其中填充了一些“配置文件”。 该 URL 配置为允许 Spring Security 中的匿名用户访问。
在第一次访问页面时,会话在我的操作中正确初始化,但当我在 struts 标记中使用它时,它被视为空。
当我在 JSP 中使用 java 代码时,我可以看到 session 是正确的:
<% System.out.println(((my.bean.SessionBean)session.getAttribute("context")).getProfiles()); %> => OK !!
session: <s:property value="%{#session}"/> => KO (empty)
session: ${session} => KO (empty)
结果是 Struts 标签无法在我的 jsp 中检索“配置文件”列表。
当我刷新页面时,它运行良好。只有在首次访问时初始化会话时才会失败。用Struts的debug模式检查过,第一次session变量为空({})。
在第一次访问时重定向到一个额外的 Struts 动作解决了这个问题。但是这个解决方案对我来说并不理想。
有人知道这个问题吗? 为什么 Struts 会得到一个空会话?
谢谢
【问题讨论】: