在Struts2中,Action并没有直接和ServletAPI进行解耦合,不能传递参数,也就是说在Strusts2下是不能直接访问Servlet的API的。但是我们在实际的实现业务逻辑时,要经常访问Servlet对象,如Session,request和application
在Seruts2中,访问Servlet API 有三种方法
通过ActionContext类访问 — 完全解耦合方式
actionContext类访问Servlet API 执行所需要的所有对象,包括parameters,request,session。application
等
方法声明 | 功能描述 |
---|---|
void put(String key,Object value) | 将key-value 键值对放入ActionContext 中,模拟Servlet API 中的HttpServlet Request的setAttribute()方法 |
Object get(String key ) | 通过参数key来查找当前ActionContext中的值 |
Map<String , Object > | 返回一个application 级的Map对象 |
static ActionContext getContext() | 获取当前线程的ActionContext对象 |
Map<String,Object> getParameters() | 返回一个包含所有HttpServletRequest参数信息的Map对象 |
Map<String,Object> getSession() | 返回一个Map类型的HttpSession对象 |
void setApplication(Map<String,Object> application) | 设置Application |
void setSession (Map<String,Object> session ) | 设置一个Map类型的Session值 |
如何使用举例
//接收数据
Action contex