ActionContext类在struts2开发中经常用到,下面是自己觉得总结比较好的一段,和大家共享一下:
Action
访问
Servlet API
:
Struts2中的Action并没有和任何Servlet
API耦合,这样框架更具灵活性,更易测试。
但是,对于web应用的控制器而言,不访问Servlet API几乎是不可能的,例如跟踪HTTP
Session状态等。Struts2框架提供了一种更轻松的方式来访问Servlet
API。Struts2中提供了一个ActionContext类(当前Action的上下文对象),通过这个类可以访问Servlet
API。下面是该类中提供的几个常用方法:
public static ActionContext getContext() :获得当前Action的ActionContext实例。
public Object get(Object key) :此方法类似于调用HttpServletRequest的getAttribute(String name)方法。
public void put(Object key, Object value) :此方法类似于调用HttpServletRequest 的setAttribute(String name, Object o)。
public Map getParameters() :获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap() 方法。
public Map getSession() :返回一个Map对象,该Map对象模拟了HttpSession实例。
public void setSession(Map session) : 直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。
public Map getApplication() :返回一个Map对象,该对象模拟了该应用的ServletContext实例。
public void setApplication(Map application) :直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名-属性值对。
Struts2
中通过ActionContext来访问Servlet API,让Action彻底从Servlet API
中分离出来,最大的好处就是可以脱离Web容器测试Action。
另外,Struts2中还提供了一个ServletActionContext类,Action只要继承自该类,就可以直接访问Servlet
API。具体方法参看struts2的API文档。
--EOF--
分享到:
相关推荐
总结来说,ActionContext和ServletActionContext是Struts2中处理请求和响应的关键工具,它们提供了方便的方式来访问和操作HTTP请求、会话以及应用上下文中的数据,是理解Struts2工作原理的重要组成部分。正确使用这...
本文将深入探讨Struts2中的输入校验机制,帮助开发者更好地理解和应用。 一、Struts2输入校验概述 在Struts2中,输入校验主要用于验证用户通过表单提交的数据,防止无效或恶意数据进入系统。Struts2提供了多种方式...
以上是对Struts2框架基础知识点的总结,实际开发中还需要了解更多的高级特性,如自定义拦截器、动态方法调用、文件上传下载、异常处理策略等。通过这些知识,新手可以快速上手并熟练掌握Struts2框架的使用。
输入校验的流程在Struts2中是结构化的,涉及多个步骤: 1. **类型转换**:首先,Struts2框架使用类型转换器将HTTP请求中的字符串参数转换为相应的Java类型,如Integer、Date等,并将这些值设置为Action类的属性。 ...
OGNL是Struts2中用于对象属性访问和表达式语言,它允许在Action、ValueStack和视图层之间传递数据。ValueStack是一个对象栈,它持有ActionContext上下文中的所有对象,包括Action实例、ActionForm、Session、Request...
在这个“Struts2项目开发经验总结”中,我们将深入探讨Struts2的核心概念、关键特性以及在实际项目中的应用。 首先,Struts2作为控制器,负责处理HTTP请求,并通过Action类来执行业务逻辑。Action类是Struts2的核心...
在Struts2中,所有的Action调用都是通过`ActionProxy`来完成的。 通过以上内容,我们可以看到Struts2是一个功能强大且易于使用的Java Web开发框架,它简化了Web应用程序的开发过程,使开发者能够更专注于业务逻辑的...
在`Dispatcher`的初始化过程中,它会读取`web.xml`或其他配置文件,解析Struts2的配置信息,如Action、结果类型、拦截器等。这些配置信息被加载到内存中的容器中,供后续请求处理时使用。`Dispatcher`还负责初始化...
这种方法利用了Struts2中的ActionContext对象,它包含了当前执行环境的信息,可以通过它来获取request对象。 2. **使用`ServletActionContext`**: ```java HttpServletRequest request = ServletActionContext....
在Struts2中,Action类可以有各种属性,这些属性可以直接与HTTP请求参数关联。当用户提交表单时,Struts2框架会自动将请求参数绑定到Action的相应属性上,简化了数据的处理。 3. **Domain Model(实体模型)** ...
在Struts2中,当服务端验证失败时,通常会将错误信息保存在ActionContext中,并通过ActionSupport类中的addFieldError方法添加到字段上。此时,为了保留页面的初始状态,我们可以采取以下策略: 1. 使用`...
在Struts2中配置HTTPS主要涉及以下几个步骤: 1. **配置服务器**:首先,你需要在服务器端(如Tomcat、Jetty等)启用HTTPS。这通常涉及到修改服务器的配置文件(如Tomcat的`server.xml`),添加一个监听443端口的...
在Struts2中,Action类是业务逻辑的载体,每个Action对应用户的一个请求。Action可以通过实现`com.opensymphony.xwork2.Action`接口或继承`org.apache.struts2.actions.support.AbstractActionSupport`基类来创建。...
在Struts 2中,OGNL作为默认的数据绑定和表达式语言,用于在Action、值栈和视图之间传递数据。 4. **freemarker.jar**:FreeMarker是一个模板引擎,用于生成动态HTML、XML或其他文本格式的输出。Struts 2支持多种...
- 在转换过程中如果出现异常,Struts2会将异常信息存储在`ActionContext`中,`conversionError`拦截器会将这些异常封装到`FieldError`对象中。 3. **反射调用校验方法**: - 通过反射调用`validateXxx()`或`...
在Struts2中,可以使用`SessionAware`接口或者通过`ActionContext`来获取session对象。 1. **使用SessionAware接口:** - 通过实现`SessionAware`接口,可以自动注入session对象。 ```java import org.apache....
在Struts2中,类型转换是通过`ValueStack`和`TypeConverter`接口实现的。`ValueStack`负责管理Action对象,而`TypeConverter`接口则定义了如何将字符串转换为特定类型的逻辑。当Action属性需要被赋值时,Struts2会...
对Struts2框架中的相关知识还有困惑的同学有福了,此次上传的是西安领航何足道老师的核心项目Struts2部分的重点难点的归纳总结,他对Struts2理解非常深刻,讲的非常的详细易懂,堪称经典。主要包括的知识有Action的...