簡體   English   中英

sessionAware:如何從操作獲取會話屬性

[英]sessionAware : How can I get session attribute from action

我想通過一些實現SessionAware接口的操作來訪問會話屬性;

我想根據登錄用戶的類型執行一些測試,與它相關的信息存儲在會話的屬性中,我可以使用以下代碼在JSP頁面中獲取此屬性:

<s:property value="%{#session['attribute']}"/> 

我的LoginAction

public class LoginAction extends ActionSupport implements SessionAware {

    private static final long serialVersionUID = 1L;
    private String userName;
    private String password;

    private Map<String, Object> session;
        private Service service;
        Utilisateur user; 
    // ---------------------------- Log Out register user


    public String logOut() {
        session.remove("loginId");
        session.clear();
        addActionMessage("You Have Been Successfully Logged Out");
        return SUCCESS;
    }

    // ---------------------------- Login register user

    public String loginRegisterUser() {

        service = new ServiceImpl();
         user = service.checkUsernamePassword(userName, password);

        if (user != null) 
        {
            session.put("loginId", userName);
            session.put("mdp", password);
            session.put("role", user.getRole().getRole());
            return "success";
        } 
        else
        {
                addActionError("Please Enter Valid emailId or Password");
            return LOGIN;
        }
    }

    public void setSession(Map<String, Object> map) {
        this.session = map;
    }

如何在動作課中獲得它們?

編輯:

我嘗試使用此代碼從其他操作中獲取它:

public class GestionMissions extends ActionSupport implements  SessionAware, ModelDriven
{
    private Map<String, Object> session;


    @Override
    public void setSession(Map<String, Object> s) {
        this.session = s;

    }

    public String getsession() 
    {
        String test;
        test = (String) session.get("loginId");

        System.out.println(test);
                return "success";

}

會話變量包含在您通過setSession方法獲取的映射中,只需調用session.get('attribut')即可獲取所需的值。

這是一些示例的詳細說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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