Struts2两种解耦访问WEB资源的方式
2013-09-02 15:28
393 查看
一.通过com.opensymphony.xwork2.ActionContext
public Object get(Object key): ActionContext 类中没有提供类似 getRequest() 这样的方法来获取 HttpServletRequest 对应的 Map 对象.
要得到 HttpServletRequest 对应的 Map 对象, 可以通过为 get() 方法传递 “request” 参数实现
/**
* 与Servlet API解耦的方式访问WEB资源 之解耦访问方式一
* ActionContext 中保存了 Action 执行所需要的所有对象, 包括 parameters, request, session, application 等.
*/
public String test1(){
ActionContext actionContext = ActionContext.getContext();
Map<String,Object> requestMap = (Map<String, Object>) actionContext.get("request");
requestMap.put("requestKey", "requestValue");
Map<String,Object> sessionMap = actionContext.getSession();
sessionMap.put("sessionKey", "sessionValue");
Map<String,Object> applicationMap = actionContext.getApplication();
applicationMap.put("applicationKey", "applicationValue");
return "success";
}
二.让Action实现如下接口:
1.org.apache.struts2.interceptor.RequestAware
2.org.apache.struts2.interceptor.SessionAware
3.org.apache.struts2.interceptor.ApplicationAware
public class WebInfoAction implements RequestAware,SessionAware,ApplicationAware{
/**
* 与Servlet API解耦的方式访问WEB资源 之解耦访问方式二
*
* Action 类通过可以实现某些特定的接口, 让 Struts2 框架在运行时向 Action
* 实例注入 parameters, request, session 和 application 对应的 Map 对象:
* 这个注入操作不需要我们去注入
*/
private Map<String, Object> applicationMap;
private Map<String, Object> sessionMap;
private Map<String, Object> requestMap;
public String test2(){
ActionContext actionContext = ActionContext.getContext();
requestMap.put("requestKey", "requestValue2");
sessionMap.put("sessionKey", "sessionValue2");
applicationMap.put("applicationKey", "applicationValue2");
return "success";
}
@Override
public void setApplication(Map<String, Object> applicationMap) {
this.applicationMap = applicationMap;
}
@Override
public void setSession(Map<String, Object> sessionMap) {
this.sessionMap = sessionMap;
}
@Override
public void setRequest(Map<String, Object> requestMap) {
this.requestMap = requestMap;
}
}
public Object get(Object key): ActionContext 类中没有提供类似 getRequest() 这样的方法来获取 HttpServletRequest 对应的 Map 对象.
要得到 HttpServletRequest 对应的 Map 对象, 可以通过为 get() 方法传递 “request” 参数实现
/**
* 与Servlet API解耦的方式访问WEB资源 之解耦访问方式一
* ActionContext 中保存了 Action 执行所需要的所有对象, 包括 parameters, request, session, application 等.
*/
public String test1(){
ActionContext actionContext = ActionContext.getContext();
Map<String,Object> requestMap = (Map<String, Object>) actionContext.get("request");
requestMap.put("requestKey", "requestValue");
Map<String,Object> sessionMap = actionContext.getSession();
sessionMap.put("sessionKey", "sessionValue");
Map<String,Object> applicationMap = actionContext.getApplication();
applicationMap.put("applicationKey", "applicationValue");
return "success";
}
二.让Action实现如下接口:
1.org.apache.struts2.interceptor.RequestAware
2.org.apache.struts2.interceptor.SessionAware
3.org.apache.struts2.interceptor.ApplicationAware
public class WebInfoAction implements RequestAware,SessionAware,ApplicationAware{
/**
* 与Servlet API解耦的方式访问WEB资源 之解耦访问方式二
*
* Action 类通过可以实现某些特定的接口, 让 Struts2 框架在运行时向 Action
* 实例注入 parameters, request, session 和 application 对应的 Map 对象:
* 这个注入操作不需要我们去注入
*/
private Map<String, Object> applicationMap;
private Map<String, Object> sessionMap;
private Map<String, Object> requestMap;
public String test2(){
ActionContext actionContext = ActionContext.getContext();
requestMap.put("requestKey", "requestValue2");
sessionMap.put("sessionKey", "sessionValue2");
applicationMap.put("applicationKey", "applicationValue2");
return "success";
}
@Override
public void setApplication(Map<String, Object> applicationMap) {
this.applicationMap = applicationMap;
}
@Override
public void setSession(Map<String, Object> sessionMap) {
this.sessionMap = sessionMap;
}
@Override
public void setRequest(Map<String, Object> requestMap) {
this.requestMap = requestMap;
}
}
相关文章推荐
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
- Struts2通过ActionContext解耦的方式获取WEB资源
- Struts2_007_Servlet API解耦的访问方式web资源之Aware
- Struts2获取Web容器资源的方式 访问request,session
- javaWeb-web项目中加载资源文件路径的两种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- Struts2 Web 资源获取的四种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- STRUTS2 ACTION 访问WEB元素的四种方式
- Struts2中访问web元素的四种方式
- Servlet 访问WEB资源的方式
- 尚硅谷公开课--struts2--3--struts2中获取web资源的几种方式
- Struts2获取web资源的四种方式
- Dwr3访问Web元素的两种方式
- Struts2_13_访问WEB元素_2(最常用控制反转的方式)
- JAVA_WEB Struts2学习:Struts2解耦、耦合方式获取request、session、aplication对象
- struts2获取web资源方式
- Struts2访问Web元素的三种方式
- Struts2通过Aware方式获取WEB资源