ActionContext类-与Servlet API解耦的访问方式
来源:互联网 发布:javascript隐藏按钮 编辑:程序博客网 时间:2024/05/17 04:59
非IOC方式
为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts2对HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用HttpServletRequest、HttpSession、ServletContext对应的Map对象来保存和读取数据。要获得这三个Map对象,可以使用com.opensymphony.xwork2.ActionContext类。
public Object get(Object key)
ActionContext类没有提供类似getRequest()这样的方法来
获取封装了的HttpServletRequest的Map对象。要得到request对象的Map对象,
需要为get()方法传递参数“request”
public Map getSession()
获得封装了HttpSession的Map对象
public Map getApplication()
获取封装了ServletContext的Map对象
public class LoginAction implements Action {
//在这里展示了,如何将用户登对录对象写入到request,session,application作用域中public User user;
public String execute() throws Exception {
ActionContext context=ActionContext.getContext();
Map request=(Map)context.get(“request”);//获得request对象,只可以设置或是获取属性,不能获取参数。
Map session=(Map)context.getSession();
Map application=(Map)context.getApplication();
request.put(“user”,user);//将user对象放到request作用域中
session.put(“user”,user);//将user对象放到session作用域中
application.put(“user”,user);//将user对象放到application作用域中
}
IOC方式
除了利用ActionCotext来获取request、session、application对象这种方式外,还可以采用在Action类中实现某些特定的接口的方式,让Struts2框架在运行时向Action实例注入request、session和application对象,与之有关的三个接口和它们的方法如下所示:
org.apache.struts2.interceptor.RequestAware
框架利用该接口,向Action实例注入request Map对象。该接口有
void setRequest(Map request)
org.apache.struts2.interceptor.SessionAware
框架利用该接口,向Action实例注入session Map对象。该接口有;
void setSession(Map session)
org.apache.struts2.interceptor.ApplicationAware
框架利用该接口,向Action实例注入application Map对象。该接口有
void setApplication(Map application)
- ActionContext类-与Servlet API解耦的访问方式
- struts 访问 servlet api (ActionContext方式)
- Struts中访问Servlet对象的方式(与Servlet API解耦的访问方式)
- Struts与Servlet API解耦的访问方式
- 使用ActionContext类访问Servlet API
- 使用ActionContext类访问Servlet API
- Servlet API解耦的访问方式
- Action访问Servlet API(通过ActionContext类访问)
- Struts2(4):Action访问Servlet API---ActionContext
- Action使用ActionContext访问Servlet API
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- Struts2 与Servlet API解耦,耦合的访问方式
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- Struts2 访问Servlet API(ActionContext)以及校验框架
- servlet API 解耦访问和耦合访问的区别
- Devexpress 报表 显示
- linux 查看系统信息的相关命令
- 深入研究重要的临界区例程
- Error #2044: 未处理的 IOErrorEvent:。 text=Error #2038: 文件 I/O 错误。
- 微软之走向死亡
- ActionContext类-与Servlet API解耦的访问方式
- Android用ImageView显示本地和网上的图片
- 如何限制Linux用户的进程数呢?
- 传统媒体及报纸应该从Reddit身上学习什么?
- linux kernel current宏
- java程序调用外部exe程序的实现
- ubuntu修改hosts文件
- Android210 最新开机logo
- hdu 1712 分组背包