这章,将要对struts2中的Action作一个简单的介绍。
相对struts1而言,struts2采用了低侵入的设计,struts2中不要求Action继承任何struts2中的基类,或者实现其它接口。在这种设计的方式下,struts2中的Action就相当于一个POJO,从而降低了Action的耦合性以及提高了Action的复用性。
和struts1的又一比较大的区别是,struts2中已经取消了ActionForm,所有用户请求的参数改成都封装在对应的Action中,如:
public class LoginAction {
private String userName;
public String getUserName() {
return userName;
}
…
}
如上,封装了userName属性,但注意:封装属性的同时,必须要提供set方法struts2是通过对应的set方法来处理这些参数的,而不是通过参数名来处理的
Struts2中的Action不仅可以封装请求的参数,还可以封装处理后的参数。如:
private String tip;
public void setTip(String tip) {
this.ti= tip;
}
在Action的处理中,设置tip的值,则在处理后的视图中,则可显示该处理结果,如:
<s:property value=”tip”/>
为了让用户的开发更加规范,struts2中提供了Action接口和ActionSupport基类,其中ActionSupport是个Action默认实现类,它提供了许多默认的实现方法。Action是个接口,具体代码如下:
package com.opensymphony.xwork2;
public interface Action {
public static final String SUCCESS = "success";
public static final String NONE = "none";
public static final String ERROR = "error";
public static final String INPUT = "input";
public static final String LOGIN = "login";
public String execute() throws Exception;
}
注意Action中的几个常量,对已后Action更深一步的认识有帮助.
有人也许会问,既然Action中类似一个POJO,那以后要直接用到Servlet API,如HttpServletRequest和ServletContext等这么办呢?
没关系,Struts2中提供了两种解决方法,第一种就是使用struts2提供的工具类-ServletActionContext。它提供了一些列静态方法,可以直接获得Servlet API,如
HttpServletRequest和ServletContext的对象,即:
ServletActionContext .getServletContext()
ServletActionContext. GetResponse()
ServletActionContext.GetRequest()
ServletActionContext. getPageContext()
第二种方法即是实现struts2中对应的几个接口:
ServletContextAware、ServletResponseAware、ServletRequestAware等。
如一个Action实现ServletContextAware,则必须实现如下方法:
Public void setServletResponse(HttpServletResponse response);
其它与此类似
其实,struts2还提供了一个非常实用的类,即跟踪Action的上下文的类ActionContext,具体下章再作详细的解释。
分享到:
相关推荐
在本篇文章中,我们将深入探讨Struts2中的Action及其相关知识点。 Action是Struts2框架中处理用户请求的核心实体,它是业务逻辑与视图层之间的桥梁。一个Action类通常对应一个特定的用户操作或者业务场景。Action类...
"Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...
Struts2 的常量详解 Struts2 框架中有许多重要的常量,它们负责控制着 Struts2 的行为和配置。下面我们将对 Struts2 中的一些常量进行详细的解释和分析。 1. struts.configuration struts.configuration 属性指定...
为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的标签及其用法,无论您是初学者还是高级用户,都能从中获益。 #### 1. Struts2标签概述 Struts2框架内置了一系列强大的标签库,这些标签...
### Struts2属性文件详解 #### struts.configuration 该属性用于指定加载Struts 2配置文件的配置文件管理器,默认值为`org.apache.struts2.config.DefaultConfiguration`,这是Struts 2默认的配置文件管理器。若...
Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...
按照Struts1.x的程序开发步骤,我们可以逐一对应到Struts2中: 1. **安装Struts2:** - 不同于Struts1的Servlet配置,Struts2需要配置Filter。在`web.xml`中添加Struts2的Filter配置,如: ```xml ...
Ognl(Object-Graph Navigation Language)是Struts2中的默认表达式语言,用于在Action和视图之间传递数据。Ognl表达式可以方便地访问对象属性,执行运算和方法调用。Struts2的标签库,如s:form、s:textfield等,...
`<package>`节点是Struts2配置文件中的一个非常重要的组成部分,它用于组织相关的配置项,如Action的定义、拦截器的配置以及结果类型的设定等。`<package>`节点可以包含以下子节点: 1. **`<action>`** - 定义一个...
Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....
本文将深入探讨Struts2中的常量配置,这些常量在框架的运行时扮演着至关重要的角色。 首先,我们要了解Struts2配置文件的层次结构。主要有以下几个核心配置文件: 1. **struts-default.xml**:这是Struts2核心库中...
首先,Action配置是Struts2中定义业务逻辑入口的关键,它将HTTP请求映射到特定的Java类方法上。在`struts.xml`中,一个Action配置通常由`<action>`元素定义,包含了多个属性,如`name`、`class`、`method`等。 `...
首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org.apache.struts2.dispatcher.multipart.MultiPartRequest`的Action类,或者使用Struts2提供的`...
2. **Action对象**:Struts1中的Action直接与Servlet API耦合,而Struts2中的Action通过拦截器与业务逻辑分离。 3. **配置方式**:Struts1使用`struts-config.xml`文件进行配置,而Struts2主要通过`struts.xml`...
在Struts2中,当请求到达时,框架会创建一个代理对象来包装原始的Action对象。这个代理对象会在调用Action的方法之前先调用拦截器的方法,执行相应的前置处理;在Action的方法执行完成后,再调用拦截器的后置处理...
以上只是Struts2标签库中的一部分,实际上还有许多其他标签,如`s:include`、`s:actionerror`、`s:label`等,它们共同构成了Struts2强大的表现层工具。熟练掌握这些标签,能够帮助开发者更高效地构建动态、交互性强...
在本文中,我们将深入探讨Struts2标签的用法,包括它们的基本概念、类型以及如何在实际开发中应用。 一、Struts2标签基础 Struts2标签库是基于JavaServer Pages (JSP) 标准标签库(JSTL)的扩展,它包含了一系列与...
Struts2的配置主要在struts.xml文件中进行,包括Action配置、结果类型配置、拦截器配置等。Action配置定义了Action类及其关联的URL,结果类型配置决定了Action执行后的跳转逻辑,拦截器配置则允许在Action执行前后...