利用 ActionContext对象
public class Aemo1Action extends ActionSupport {
//完全解耦合方式,不能获得
@Override
public String execute() throws Exception {
//利用Stuts2中的对象ActionContext对象
ActionContext context = ActionContext.getContext();
//调用ActionContext中的方法
Map<String, Object> map = context.getParameters();
//类似于Map<String,String[]>request.getParameterMap方法
for (String key : map.keySet()) {
String[] values = (String [])map.get(key);
System.out.println(key+" "+Arrays.toString(values));
}
//向域中存入数据
context.put("reqName", "reqValue"); //相当于request.setAttribute()
context.getSession().put("sessName", "sessValue");//相当于session.setAttribute()
context.getApplication().put("appName", "appValue");//相当于application.setAttribute()
return SUCCESS;
}
利用域对象的方式 ServletActionContext
public class Aemo2Action extends ActionSupport {
@Override
public String execute() throws Exception {
//可以使用域对象的方法
HttpServletRequest request = ServletActionContext.getRequest();
Map<String, String[]> map = request.getParameterMap();
for (String key : map.keySet()) {
String[] values = map.get(key);
System.out.println(key+" "+Arrays.toString(values));
}
//向request域中储存数据
request.setAttribute("reqName", "reqName");
request.getSession().setAttribute("sessName", "sessName");
request.getServletContext().setAttribute("appName", "appName");
return SUCCESS;
}
}
通过特定接口访问
public class Aemo3Action extends ActionSupport implements ServletRequestAware,ServletContextAware {
private HttpServletRequest request;
private ServletContext context;
@Override
public String execute() throws Exception {
Map<String, String[]> map = request.getParameterMap();
for (String key : map.keySet()) {
String[] values = map.get(key);
System.out.println(key+" "+Arrays.toString(values));
}
//存入request域中
request.setAttribute("reqName", "reqName");
request.getSession().setAttribute("sessName", "sessName");
context.setAttribute("appName", "appName");
return super.execute();
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}