2014-04-12 60 views

回答

1

Struts2爲會話管理提供了一個非常強大的簡單機制&。對於您想要進行會話管理的每個動作,只需在您的動作中實現一個sessionAware接口&創建Map。重寫sessionAware接口的setSession()方法&在此方法內設置創建的映射命名會話。就這樣;現在你可以使用put()方法,即session.put(「key」,value)將任何東西放在地圖上。 &使用您提供的密鑰(例如session.get(「key」))從會話中獲取任何內容。請注意,您只能在實施了sessionAware界面的操作中使用session.get(「key」)。請檢查下面的例子

public class sessionDemo extends ActionSupport implements SessionAware{ 
private Map session; 
@Override 
public String execute() throws Exception { 
    session.put("userId",10); 
    return "success"; 
} 

/** 
* @return the session 
*/ 
public Map getSession() { 
    return session; 
} 

/** 
* @param session the session to set 
*/ 
@Override 
public void setSession(Map session) { 
    this.session = session; 
} 

}

+0

我有Web應用程序和100個操作。 所以我需要在所有100個動作中實現sessionAware接口? – rajub

+0

是的。你必須實現sessionAware接口如果你想維護會話執行各自的動作。這與您爲每個操作擴展actionSupport類相同,因爲您要使用它的方法(如validate())。 –