一个struts2的请求就是一个action
能够处理struts2请求的类就是Action类
获取web资源的方法:(松耦合)
通过ActionContext获取
ActionContext 是action的执行上下文对象 ,可在一个ActionClass中获取action实例的上下文
ActionContext actionContext = ActionContext.getContext();
Map<String,Object> applicationMap = actionContext.getAppliction();
aplicationMap.put("applicationKey","applicationValue");
//相同的还有
Map<String,Object> sessionMap = actionContext.getSession();
sessionMap.put("sessionKey","sessionvalue");
//获取request比较特殊,strurs2并没有提供该方法,所以要手动来获取
Map<String,Object> requsetMap = (Map<String,object) actionContext.get("request");
requestMap.put("requestKey","requestValue");
//获取链接中的参数
Map<String,Object> parametersMap = actionContext.getParameters();
(String[]) parametersMap.get("name")[0];
//parameters只能读 不能写入数据
通过Aware 接口获取
public class TestAware implements ApplicationAware, SessionAware, RequestAware{
public String execute(){
//添加一个属性
application.put("applicationKey","applicationValue");
//获取一个属性
Object data = application.get("data");
return "success";
}
private Map<String,Object> application;
@override
public void setApplication(Map<String,Object> application){
this.application = application;
}
}
需要注意的是 session 对应的Map是SessionMap类型的,通过强转后调用其invalidate()方法会使其失效
SessionMap sm = (SessionMap) sessionMap;
sm.invalidate();
网友评论