2011-07-15 32 views
2

有很多方法可以在struts2中獲取會話對象。哪一個是最好的,推薦的方法來從以下獲取會話對象?在struts2中獲得會話的最佳和推薦的方法?

  1. ActionContext的
  2. SessionAware
  3. 充分利用ServletRequestAware和請求對象會話後請求。

現在我正在使用ServletRequestAware獲取所有操作中的會話對象,即使不需要請求對象。

哪一個最好,爲什麼最好?

在此先感謝

回答

3

實施SessionAware是優選的,雖然你可以訪問你表示過其他方式的會話。
通過實施SessionAware,您可以給struts2一個將會話屬性(這是地圖)注入到動作中的機會。這使您的代碼不會耦合到底層的servlet上下文,並且使測試更容易,因爲您可以將任何地圖對象傳遞給具有所需屬性的動作。 對此會話映射所作的任何更改都將反映在真實的會話對象上。

+0

謝謝doctrey的有用的解釋..我可以從SessionAware的會話對象獲得** ServletContext **而不使用ServletRequestAware,因爲我需要獲得服務器的真實路徑? – developer

+0

@yuvaraj不客氣。如果你需要訪問** servletContext **,只需實現'ServletContextAware'。 – doctrey

+0

謝謝你的提示,doctrey – developer

0

同意doctrey。讓你的動作實現sessionaware,並創建會話變量(這是Map變量)。該變量可以像任何普通變量一樣對待。代碼看起來更整潔。

相關問題