`
FernandoTorres
  • 浏览: 3665 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts详解之Action类

阅读更多
Struts详解之Action类

1.Action类

      org.apache.action.Action类是Struts的心脏,也是客户请求和业务操作间的桥梁。每个Action类通常涉及为代替客户完成某种操作。

      一旦正确的Action实例确定,就会调用RequestProcessor类的processActionPerform()方法,processActionPerform()方法,负责调用Action实例的execute()方法。

      execute()方法有4个参数:ActionMapping对象、ActionForm对象 、HttpServletRequest对象和HttpServletResponse对象。ActionForm对象封装了表单数据,因此Action类可以通过getter方法从该对象中获得表单数据,然后调用模型组件处理这些数据。 Action类又通过ActionMapping对象的findForward()方法获得一个ActionForward对象,然后把处理结果转发到 ActionForward对象所指的目标。
      其具体的实现过程如下代码所示:
package login;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;

publlic class loginAction extends Action{
        public ActionForward execute(ActionMapping actionmapping, ActionForm actionForm,

                        HttpServletRequest request, HttpServletResponse response )
   {
          loginActionForm loginForm=(loginActionForm) actionForm;
            //从form bean中取出表单数据
          String username=loginForm.getUsername();
          String password=loginForm.getPassword();
            //生成一个Session对象
          HttpSession session=request.getSession(true);
          session.removeAttribute("username");
          session.setAttribute("username",username);
            //生成一个ArrayList对象,并把用户名和密码的值寸入该对象中
          ArrayList arr=new ArrayList();
          arr.add(username);
          arr.add(password);
          String prompt;
            //调用模型组件loginHandler,检查该用户是否已经注册
          loginHandler login=new loginHandler();
          boolean mark=login.checkLogin(arr);

          if(mark)  prompt="Success";
              else prompt="Fail";
            return actionMapping.findForward(prompt);
   }
}
2.ActionMapping类
     
      ActionMapping 存储了与特定用户请求对应的特定Action的相关信息,例如输入页面、转发页面等。ActionServlet将ActionMapping传送到 Action类的execute()方法,然后Action将调用ActionMapping的findForward()方法,此方法返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。

3.ActionForward类

      Action类中的execute()方法返回一个ActionForward对象。ActionForward对象代表一个Web资源的逻辑抽象表示形式。这里的Web资源通常就是JSP页面或Java Servlet。
      ActionForward 是该资源的包装类,所以应用程序和实际资源之间并无多少瓜葛。实际的Web资源只在配置文件struts-config.xml中指定(如forward 元素的name,path和redirect属性),并非在程序代码中写入。RequestDispatch会根据redirect属性的值,来决定 ActionForward实例要进行转发还是重定向。
      要从一个Action实例返回一个ActionForward实例,可以在 Action类内动态地创建一个ActionForward实例,或者更常见的做法是使用ActionMapping的findForward()方法找出配置文件中预先配置的一个ActionForward实例,如下所示:
      return mapping.findForward("Success");
         其中,mapping是一个ActionMapping实例,该程序片断能够返回一个参数“Success”对应的ActionForward实例,以下代码是在配置文件struts-config.xml中定义的forward元素:
      <action name="loginActionForm" type="login.loginAction"
         validate="false" input="/login.jsp"
         scope="request" path="/loginAction">
      <forward name="Success" path="/main.jsp" redirect="true"/>
      <forward name="Fail" path="/register.jsp" redirect="true"/>
      <action/>
       ActionMapping 类的findForward()方法首先会调用findForwardConfig()方法,以查看在<action>元素中是否包含<forward>子元素,如果有,就会检查<global-forwards>元素片段。一旦找到匹配的 ActionForward实例,就会从execute()方法将其返回给RequestProcessor。下面是ActionMapping类的 findForward()方法:
      public ActionForward findForward(String name)
      {
            ForwardConfig config=findForwardConfig(name);
            if(config==null)
            {
                  config=getModuleConfig().findForwardConfig(name);
            }
            return ( (ActionForward)  config );
      }
分享到:
评论

相关推荐

    Struts2之Action详解2

    Struts2作为一款流行的Java Web开发框架,其Action是核心组件之一,负责处理HTTP请求并进行业务逻辑的处理。在本篇文章中,我们将深入探讨Struts2中的Action及其相关知识点。 Action是Struts2框架中处理用户请求的...

    Struts2中struts_xml的Action配置详解

    在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...

    Struts2深入详解

    ### Struts2深入详解 #### 一、作者背景与贡献 本书作者孙鑫是一位资深的IT培训专家,拥有丰富的软件开发及教育培训经验。他的授课范围广泛,涉及多种编程语言和技术,如C/C++、VC++、COM/DCOM/COM+、SQL Server、...

    struts2框架详解

    Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...

    Struts框架详解

    ### Struts框架详解 #### 一、Struts框架概述 Struts框架是一个开源的Java Web应用框架,基于Model-View-Controller(MVC)架构模式。该框架的主要优点在于其高度模块化的设计,具备良好的灵活性和重用性,极大地...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    Struts2开发详解

    Struts2的核心是Action类,它是处理用户请求的中心组件。每个Action类都对应一个特定的URL请求,处理后返回一个Result,决定如何展示响应。Struts2通过Interceptor(拦截器)机制来增强Action的功能,如日志、事务...

    Struts2 in action

    - **定义**:在Struts2框架中,**Action** 是用来处理客户端请求的核心类。当用户通过浏览器发送请求时,Struts2会将请求转发给相应的Action处理。 - **执行流程**: - 用户发起HTTP请求。 - 请求被Struts2的前端...

    struts1.2入门操作详解及原理

    在这个文件中,你可以添加一个名为`login`的Use Case,指定其继承自`org.apache.struts.action.ActionForm`的表单类,并创建对应的JSP页面。 3. **创建表单和JSP页面**:在配置窗口中,为`login`表单添加属性,如`...

    Struts2之struts2文件上传详解案例struts011

    在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....

    Struts2 深入详解课本代码

    1. **Struts2基础概念**:Struts2的核心是Action类,它是业务逻辑的载体。每个Action对应一个用户请求,负责处理请求并返回结果。通过配置Action,可以指定URL与Action之间的映射。 2. **配置文件详解**:在`ch01`...

    struts2深入详解源码1-5章

    本资料包包含的是《Struts2深入详解》一书的源码分析,涵盖了从第一章到第五章的内容,并附带了相关的jar包,方便读者结合理论与实践进行学习。 首先,让我们从第一章开始,Struts2的基础知识。这一章通常会介绍...

    Struts2配置详解

    ### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    struts2常量详解

    3. **struts.xml**:这是Web应用的主配置文件,开发者在这里定义Action、结果类型、拦截器栈等。 4. **struts.properties**:这是Struts2的属性配置文件,通常用于设置一些框架级别的配置选项。 5. **web.xml**:...

    struts2入门实例教程详解

    例如,计算两数之和的Action类可定义如下: ```java package action; import com.opensymphony.xwork2.ActionSupport; public class FirstAction extends ActionSupport { private int operand1; private ...

    Struts基础与案例开发详解

    通过这个“Struts基础与案例开发详解”教程,你可以全面了解Struts框架的基础知识,并通过实际的项目练习提升开发技能。无论是初学者还是有经验的开发者,都能从中受益,进一步掌握Java Web开发的精髓。

    Struts入门 详解Struts

    ### Struts2框架基础知识点详解 #### 一、Struts2框架概述 - **定义**:Struts2是由Apache软件基金会支持的一个开源框架,用于JavaEE应用的开发。它是Struts1的下一代版本,采用了MVC(Model-View-Controller)架构...

    struts-config详解

    Struts-config详解 Struts-config.xml 是Struts框架的核心配置文件,它描述了所有的Struts组件。在这个文件中,我们可以配置主要的组件及次要的组件。下面是struts-config.xml文件的主要元素: 一、struts-config....

Global site tag (gtag.js) - Google Analytics