阅读通过ActionContext.getContext().getSession()获取会话映射之间的差异并通过它注入
SessionAware我想知道哪个是首选方法,为什么?
API建议使用SessionAware,我在网上读到使用SessionAware使应用程序更容易测试 – 正在测试唯一的问题?
有人可以详细说明这个问题或指出解释这个的参考?
最佳答案 我已经在你之前的问题中回答了同样的问题.你可以使用任何一种方式,甚至可以通过更多方式访问Session.
单程
Map attibutes = ActionContext.getContext().getSession();
但是如果你使用这个,你的动作类直接绑定到ActionContext,这是Struts2的具体方式.
Struts2的主要目标之一是将Action类与底层HTTP上下文以及其他直接依赖项分离.
为普通POJO编写测试用例比其他方式更简单,更好.
通过实现SessionAware接口,您指示您希望会话作为简单的映射对象的Struts2,这不仅使代码解耦,而且易于维护和测试.
我希望其他人能在这方面得到更多好处