[英]Inserting a variable into Session Map in Struts2
我需要將用戶名變量存儲到會話中。
Map<String, Object> sessionname;
String uname="SomeValue";
public void setSession(Map map) {
sessionname=ActionContext.getContext().getSession();
sessionname.put("uname", username);//inserting String to the session variable
}
在另一個操作頁面上,如果我將此值返回到字符串,則顯示為空。 如果我使用雙引號引起來的字符串,則不是給出字符串,而是出現在操作頁面上。
String l=(String)session.getAttribute("uname");
System.out.println(l); //gives the value as null
如果不可能,請給我另一個解決方案,將特定變量傳遞給其他頁面。 我正在使用Struts開發圖像共享應用程序。 為了上傳圖像,我需要將用戶名傳遞到與圖像上傳過程相對應的操作頁面。
不要重新發明輪子。
Struts2的已經使用了SessionMap包裝對象, 其他人之中 。
只需實現SessionAware接口,並為您的對象提供設置器即可; 然后從該地圖放置並檢索您的對象,實現SessionAware接口的所有操作將自動處理該對象:
public class FirstAction implements SessionAware {
private Map<String,Object> session;
public void setSession(Map<String,Object> session){
this.session = session;
}
private String username; /* with Getter and Setter */
public String execute(){
session.put("uname", username);
return SUCCESS;
}
}
public class SecondAction implements SessionAware {
private Map<String,Object> session;
public void setSession(Map<String,Object> session){
this.session = session;
}
public String execute(){
System.out.println(session.get("uname"));
return SUCCESS;
}
}
也就是說,最好僅從父級Action實施SessionAware,以避免冗余,並從需要訪問Session Map的所有操作中擴展該Action。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.