Struts2中Session的使用

在Struts2里,如果需要在action中使用session,可以通过以下两种方式得到
一、通过ActionContext class中的方法getSession的到
      例子如下
      import java.util.Map;
      import com.opensymphony.xwork2.ActionContext;
      import com.opensymphony.xwork2.ActionSupport;
      
      public class SessionTestAction extends ActionSupport{
          public Stirng execute(){
              ActionContexrt actionContext = ActionContext.getContext();
              Map session = actionContext.getSession();
              session.put("USER_NAME","Test User");
              return success;
          }
      }
      在这个例子中,通过ActionContext得到session。并往session里面放置一个key为
      USER_Name,值为Test User的内容。
      
      
二、Action实现org.apache.struts2.interceptor.SessionAware接口的方式来
    对session进行操作
     例子如下
     import java.util.Map;
     import org.apache.struts2.interceptor.SessionAware;
     import com.opensymphony.xwork2.ActionSupoort;
     public class SessionTest1Action extends ActionSupport implements SessionAware{
         private Map session;
         public void setSession(Map session){
             this.session.put("USER_NAME","Test user 1");
         }
     }
     在这个例子中实现了接口SessionAware中的setSession方法。
     
     
     
在这里推荐使用第二种方式来使用session,原因是便于做单体测试,
用第二种方式,只需要构造一个Map就可以对action class 进行单体测试了。
   在一个项目中可能会有很多action都需要用到session,如果每个session都来实现
 org.apache.struts2.interceptor.SessionAware这个接口,可能会显得麻烦,所以建议做一个抽象的
 BaseAction类来实现org.apache.struts2.interceptor.SessionAware接口,以后
 所有的action只要继承这个BaseAction就可以了。



01
    <%@ page contentType="text/html; charset=UTF-8" %>
02
    <%@page pageEncoding="utf-8" %>
03
    <%@taglib prefix="s" uri="/struts-tags" %>
04
    <html>
05
    
06
    <head>
07
        <title>Session Test</title>
08
    </head>
09
    
10
    <body>
11
    <h1><s:property value="#session.USER_NAME"/></h1>
12
    <h1></h1>
13
    </body>
14
    </html>
    

一般在项目中往往会往session里放置一个Object,比如说user,user里面有个boolean admin和
String username。如果user里存放在isAdmin的方法中,在jsp中可以通过
<s:if test="#session.user.admin">来判断用户有没有管理权限,
通过<s:property value="#session.user.userName">或者来取得用户名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值