繁体   English   中英

如何在多个 Struts 2 操作类中获取存储的会话值?

[英]How can I get stored session values in multiple Struts 2 action classes?

如何在多个 Struts 2 操作类中获取存储的会话值?

不想SessionAware界面中的所有操作。

您有三个选择:

  1. 做对并使用SessionAware
  2. 正确使用并使用使用SessionAware的基本操作类。
  3. 做错了并使用ActionContext
Map attibutes = ActionContext.getContext().getSession();

记录在 Struts 2 wiki 下的我们如何访问会话下

为什么你不希望使用SessionAware ,使您的操作更容易测试的?

如果您不想在多个类中使用SessionAware ,那么至少您可以使用一个抽象类或操作类扩展的接口。 它将SessionMap注入您的操作类实例。

其他获取SessionMap或直接HttpSession方法来自这里

如果你想把一些东西放到会话中,你应该从动作上下文中获取会话映射

Map<String, Object> session = >ActionContext.getContext().getSession(); session.put("username", username); session.put("role", 1);

或者直接使用servlet session

 HttpSession session = >ServletActionContext.getRequest().getSession(); session.setAttribute("username", username); session.setAttribute("role", 1);

但第一种情况更可取,因为它受到框架的支持。


更多其他选项(您至少还有另外五个选项):

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM