2

struts2 中获取会话对象的方法有很多。从以下获取会话对象的最佳和推荐方法是哪一种?

  1. 动作上下文
  2. 会话感知
  3. ServletRequestAware和从请求对象的会话之后获取请求。

现在我使用 ServletRequestAware 在所有操作中获取会话对象,即使不需要请求对象。

哪一个是最好的,为什么它是最好的?

提前致谢

4

2 回答 2

3

SessionAware尽管您也可以通过您所说的其他方式访问会话,但首选实施。
通过实现SessionAware,您可以让 struts2 有机会将会话属性(即映射)注入到您的操作中。这使您的代码保持干净,不会耦合到底层 servlet 上下文,并且还使测试更容易,因为您可以将任何映射对象传递给具有所需属性的操作。此外,对此会话映射所做的任何更改都将反映在真实的会话对象上。

于 2011-07-15T13:15:24.483 回答
0

同意多特雷。使您的操作实现会话感知,并创建会话变量(即 Map 变量)。该变量可以像任何普通变量一样对待。代码看起来更整洁。

于 2011-07-15T16:34:41.687 回答