//ActionContext 方式
package com.hanqi.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
public class TestAction {
//封装
//解耦
//用ActionContext
public String testWeb()
{
//访问Web资源
System.out.println("经过了Action类");
//单例模式
//Action实例的上下文对象
ActionContext ac=ActionContext.getContext();
//1.获取application
Map<String,Object>mapApp=ac.getApplication();
System.out.println("app1="+mapApp.get("app1"));
//放入新的键值对
mapApp.put("app2","新放入的application");
//2.获取session资源
Map<String,Object>ses=ac.getSession();
System.out.println("ses="+ses.get("ses1"));
ses.put("ses2", "新放入的session");
ses.remove("ses1");
Map<String,Object>mapReq=(Map<String,Object>)ac.get("request");
//不能获取之前的request属性
System.out.println("req="+mapReq.get("req1"));
//可以放入新的
mapReq.put("req2", "新放入的request");
//4直接获取传递的参数
Map<String,Object>mapPar=ac.getParameters();
//参数值被封装成String[]
String[]str=(String[])mapPar.get("user");
for(String t:str)
{
System.out.println("user="+t);
}
//放入新的参数,不能被获取到
mapPar.put("pw", new String[]{"123456"});
return "success";
}
}
实现接口方式
package com.hanqi.action;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
public class TestActionAware implements ApplicationAware
,SessionAware ,RequestAware,ParameterAware{
private Map<String, Object> mapApp,mapSes,mapReq;
private Map<String, String[]>mapPar;
//实现ApplicationAware接口的方法
//提供给StrutS2进行调用,放入Application的数据集合
@Override
public void setApplication(Map<String, Object> arg0) {
//接收
mapApp=arg0;
}
public String testAware()
{
//1访问application
System.out.println("app1="+mapApp.get("app1"));
mapApp.put("app2","以Aware方式放入的Application");
//2.访问session
System.out.println("ses1="+mapSes.get("ses1"));
mapSes.put("ses2", "以Aware方式放入的session");
//3. 访问Request
System.out.println("req1="+ mapReq.get("req1"));
mapReq.put("req2", "以Aware方式放入的request");
//4.访问Parameter
String[]str=mapPar.get("user");
for(String st:str)
{
System.out.println("user="+st);
}
mapPar.put("pw",new String[]{"123"});
return "success";
}
@Override
public void setSession(Map<String, Object> arg0) {
mapSes=arg0;
}
@Override
public void setRequest(Map<String, Object> arg0) {
mapReq=arg0;
}
@Override
public void setParameters(Map<String, String[]> arg0) {
mapPar=arg0;
}
}