您当前的位置: 首页 > 

liaowenxiong

暂无认证

  • 3浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Struts2项目中的JSP如何访问Session对象

liaowenxiong 发布时间:2022-02-14 20:49:00 ,浏览量:3

Struts2 项目中,Session 对象存放在 ValueStack 的 context 对象中,context 是 Map 对象,那么要从 context 对象中获取到 Session 对象,就要指定 key 值。我们查看 ValueStack 的内容: 在这里插入图片描述 从 ValueStack 显示的内容可以知道,Session 存储在 context 对象中,对应的 key 值是 session。并且我们还知道 Session 也是 Map 类型的,所以 Session 对象其实也是一个 Map 对象,是按键值对存储数据的。

那么通过 ognl 表达式访问 context 中的 Session 对象,获取 Session 对象中 User 对象的 userName 属性值,ognl 表达式可以这样写:


我们也可以通过 EL 表达式来获取 Session 对象中的 User 对象的 userName 属性值,EL 表达式的写法如下:

${sessionScope.user.userName}

如果你不指定查询的范围,那么 EL 表达式会从 ValueStack 的 root 对象中获取 user 属性的值,因为在 roo 对象中存在 Action 对象(Struts2 控制器自动将 Action 对象压入 root 的栈顶),而 Action 对象存在 user 属性。

上述讲解中用到的 Action 组件是 LoginAction,代码如下:

package priv.lwx.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import org.apache.struts2.dispatcher.ApplicationMap;
import priv.lwx.struts2.action.dao.UserDAO;
import priv.lwx.struts2.action.entity.User;

import java.util.Map;

/**
 * description
 *
 * @author liaowenxiong
 * @date 2022/2/14 11:54
 */

public class LoginAction {
  private User user;
  private UserDAO userDAO = new UserDAO();

  public String login() {
    System.out.println(user.getUserName());
    System.out.println(user.getPassword());
    User user = userDAO.login(this.user.getUserName(), this.user.getPassword());
    if (user != null) {
      // 登录成功
      ActionContext act = ActionContext.getContext();
      Map session = act.getSession();
      String name = session.getClass().getName();
	  // 将User对象存储在Session对象中
      session.put("user", user);
      return "success";
    }
    // 登录失败
    return "fail";

  }

  public String form() {
    return "success";
  }

  public User getUser() {
    return user;
  }

  public void setUser(User user) {
    this.user = user;
  }
}

JSP 的代码如下:





    Title



    您好!


--%>
    
    ${sessionScope.user.userName}





struts.xml 的内容:


DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
                /WEB-INF/jsp/main.jsp
            
            
                /login.jsp
            
        
        
            /login.jsp
        
    


关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0408s