簡體   English   中英

在Struts2中將變量插入會話映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM