strust2共享

来源:互联网 发布:比特币源码是什么语言 编辑:程序博客网 时间:2024/04/28 10:26
1.入侵级别的session共享(不推荐)


//session共享
//struts默认共享是request级别
//入侵级别的
public String execute(){
//直接用内置的对象,HttpSession session = request.getSession();
Map<String, Object> session = ActionContext.getContext().getSession();
session.put("userid", "测试值ID");//session.setAttribute("userid","测试值ID");
return "index";

}


2.用ioc方式注入session共享


2.1 session共享(最常用)
public class UserinfoAction3 implements SessionAware{
//定义一个Session:注意,框架的Session是Map
private Map<String, Object> session;

public String execute(){
session.put("userid", "测试帐号123");
return "index";
}


//用ioc方式注入
@Override
public void setSession(Map<String, Object> session) {
this.session= session;
}
}


2.2 request共享


public class UserinfoAction3 implements RequestAware{


private Map<String, Object> request;

public String execute(){
session.put("userid", "测试帐号123");
return "index";
}


@Override
public void setRequest(Map<String, Object> request) {
this.request = request;

}
}


3.新建父类baseAction来提供得到session的方法


public class BaseAction implements SessionAware{
private Map<String, Object> session;


@Override
public void setSession(Map<String, Object> session) {
// TODO Auto-generated method stub
this.session = session;
}

public Map<String, Object> getSession(){
return session;
}


}


子类要用session就继承  


public class UserinfoAction extends BaseAction{
public String execute(){
getSession().put("userid", "继承父类共享的ID4");
return"main";
}
}
0 0
原创粉丝点击