ActionContext为Struts提供数据环境,维护着一个Map结构,ValueStack中的每一个元素都是根对象,Action位于ValueStack的最顶层.ActionContext中封装了servlet对象,从而将Action与Servlet解耦 (即Action无需依赖任何Servlet API).
Map结构如图:
获取request、session的方法
2.1 与servlet无关:
2.1.1 非IoC模式
Java代码
ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据
Map request ;
Map session ;
Map application ;
//以下初始化方法要放在方法中
context = ActionContext.getContext();
request = (Map)context.get("request");//获取request
session = context.getSession();//获取session
application = context.getApplication();//获取application
request.put("req", "request属性");
session.put("ses", "session属性");
application.put("app", "application属性");
ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据
Map request ;
Map session ;
Map application ;
//以下初始化方法要放在方法中
context = ActionContext.getContext();
request = (Map)context.get("request");//获取request
session = context.getSession();//获取session
application = context.getApplication();//获取application
request.put("req", "request属性");
session.put("ses", "session属性");
application.put("app", "application属性");
Xml代码
<!--jsp中取值-->
request属性接受:<s:property value="#request.req"/>${requestScope.req}
session属性接受:<s:property value="#session.ses"/>${sessionScope.ses}
application属性接受:<s:property value="#application.app"/>${applicationScope.app}
<!--jsp中取值-->
request属性接受:<s:property value="#request.req"/>${requestScope.req}
session属性接受:<s:property value="#session.ses"/>${sessionScope.ses}
application属性接受:<s:property value="#application.app"/>${applicationScope.app}
2.1.2 IoC模式
Java代码
//实现接口
public class LoginAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware
Map request ;
Map session ;
Map application ;
public void setRequest(Map request) {
this.request = request;
}
public void setSession(Map session) {
this.session = session;
}
public void setApplication(Map application) {
this.application = application;
}
//实现接口
public class LoginAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware
Map request ;
Map session ;
Map application ;
public void setRequest(Map request) {
this.request = request;
} public void setSession(Map session) { this.session = session; } public void setApplication(Map application) { this.application = application; } 2.2 与servlet有关
2.2.1 非IoC模式
Java代码
HttpServletRequest request;
HttpSession session ;
ServletContext application;
request = ServletActionContext.getRequest();//获取request
session = request.getSession();
application = ServletActionContext.getServletContext();//获取application
request.setAttribute("req", "request属性111");
session.setAttribute("ses", "session属性111");
application.setAttribute("app", "application属性111");
HttpServletRequest request;
HttpSession session ;
ServletContext application;
request = ServletActionContext.getRequest();//获取request
session = request.getSession();
application = ServletActionContext.getServletContext();//获取application
request.setAttribute("req", "request属性111");
session.setAttribute("ses", "session属性111");
application.setAttribute("app", "application属性111");
2.2.1 IoC模式
Java代码
//实现接口
public class LoginAction extends ActionSupport implements ServletRequestAware,ServletContextAware
HttpServletRequest request;
ServletContext application;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletContext(ServletContext application) {
this.application = application;
}
- 大小: 5.3 KB
分享到:
相关推荐
ActionContext是Struts2框架中一个关键的组件,它提供了当前请求上下文的信息,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于在模型和视图之间进行数据传递。下面将详细探讨这两个...
象,如HttpServletRequest、HttpServletResponse,或者需要访问Session和Application等信息,在Struts2框架中,我们可以利用ActionContext和ServletActionContext这两个类。ActionContext是Struts2提供的一个核心上...
在Struts2中,ActionContext类扮演着重要的角色,它提供了与请求(Request)和响应(Response)对象交互的能力。了解如何通过ActionContext类获取和操作这些对象是开发Struts2应用的基础。 ActionContext类位于`org...
Struts2框架中的ActionContext是一个至关重要的组件,它是Action的上下文环境,负责在Action执行过程中存储和管理相关对象。ActionContext的设计确保了线程安全性,因为它为每个HTTP请求的线程创建了一个唯一的实例...
struts2大量使用拦截器来处理请求,从而允许与业务逻辑控制器 与 servlet-api分离,避免了侵入性(所谓侵入性就是指的这个架构设计出来的部件对系统的影响范围,标签库几乎可以完全替代JSTL的标签库,并且 struts2.x...
Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...
Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。这个API帮助文档是开发者在使用Struts2框架时的重要参考资料,它详细阐述了框架的各种组件、类库和方法,有助于理解并有效...
8. **Action上下文(ActionContext)**:ActionContext是Struts2中保存请求和会话数据的上下文对象,包含了请求参数、session数据等,可以用来在Action间共享数据。 9. **Struts2与Spring集成**:Struts2可以方便地...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Web开发领域中被广泛使用。这个“超好的Struts2 pdf 文档”很可能包含了关于Struts2的全面介绍、核心概念、配置、拦截器、结果...
本文将深入探讨Struts2中的OGNL表达式,ActionContext以及valuesStack。 首先,OGNL表达式是Struts2中不可或缺的一部分,它允许开发者以一种声明式的方式访问和修改对象的属性。比如,`myBean.getMyProperty()`这样...
7. **ActionContext**:ActionContext是Struts2中一个重要的上下文对象,它保存了请求、会话、应用等范围内的属性。 8. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在...
Struts2是一个流行的Java web框架,用于构建MVC(Model-View-Controller)架构的应用程序。以下是关于"马士兵Struts2笔记2013"中的关键知识点详解: 1. **建立Struts2工程** 创建一个Struts2工程通常涉及在集成...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在当今网络安全日益重要的环境下,使用HTTPS协议来确保数据传输的安全性变得至关重要。Struts2支持HTTPS配置,可以...
总的来说,Struts2的OGNL表达式和ActionContext以及ValuesStack的设计使得数据访问更加灵活和高效。开发者可以方便地在控制器、视图和模型之间穿梭,进行复杂的表达式计算和对象属性操作,同时保持代码的简洁和...
Struts2是一个强大的Java Web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。本总结将深入探讨Struts2的核心概念、配置、Action的创建、数据操作、值栈以及拦截器的使用,旨在帮助初学者快速上手并深入...
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
Struts2-core-2.0.12.jar是Apache Struts框架的一个核心组件包,它在Java Web开发中扮演着至关重要的角色。Struts2是一个开源的MVC(Model-View-Controller)框架,用于构建高效、可扩展的Web应用程序。这个版本号...
5. **XWork2**:Struts2是在XWork框架的基础上发展起来的,XWork提供了Action管理和执行的核心机制,包括ActionContext、ValueStack等关键组件。 6. **运行流程**:当一个请求到达服务器,Struts2框架会解析`struts...
5. **校验结果处理**:当验证失败时,Struts2会将错误信息添加到ActionContext中,然后可以通过OGNL表达式在JSP页面中展示。同时,Action的execute方法不会执行,直到所有验证都通过。 6. **拦截器(Interceptor)*...
2. 该请求被Struts2框架捕获,请求会被封装成一个ActionContext对象。 3. 接着请求数据会被转换成Action对象的属性。 4. 框架会依次调用与该Action关联的一系列拦截器,每个拦截器可以执行特定的业务逻辑或数据处理...