`

《研磨struts2》第四章 Action 之 4.1 Action基础

阅读更多

4.1  Action基础

4.1.1  Action是什么

在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。

也就是说,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此说一个Action类代表了用户的一次请求或调用。

       换句简单的话来说,Action就是用来处理一次用户请求的对象。

4.1.2  Action能干什么

认识了Action是什么过后,来看看Action能干什么。

1:先看看前面HelloWorld中实现的Action对象,示例代码如下:

 

java代码:
  1. public class HelloWorldAction implements Action {  
  2.     private String account;  
  3.     private String password;  
  4.     private String submitFlag;  
  5.     public String execute() throws Exception {  
  6.         //1:收集参数,不用做了,数据会直接映射到上面的属性里面  
  7.         //2:组织参数,暂时不需要,先不做  
  8.         //3:调用模型的逻辑功能处理,这里不需要,只是简单的输出一下传入的参数  
  9.         System.out.println("用户输入的参数为==="+"account="+account  
  10.                    +",password="+password+",submitFlag="+submitFlag);  
  11.         //4:根据逻辑处理的结果来选择下一个页面,这里直接选择转向欢迎页面的result  
  12.         return "toWelcome";  
  13.     }  
  14.     public String getAccount() {  
  15.         return account;  
  16.     }  
  17.     public void setAccount(String account) {  
  18.         this.account = account;  
  19.     }  
  20.     public String getPassword() {  
  21.         return password;  
  22.     }  
  23.     public void setPassword(String password) {  
  24.         this.password = password;  
  25.     }  
  26.     public String getSubmitFlag() {  
  27.         return submitFlag;  
  28.     }  
  29.     public void setSubmitFlag(String submitFlag) {  
  30.         this.submitFlag = submitFlag;  
  31.     }  
  32. }  

根据上面的Action实现,你会发现,在Struts2里面,Action充当着MVC中模型的角色,也就是说Action既封装了业务数据,又要处理业务功能。当然,在实际的JavaEE开发中,逻辑部分会放到逻辑层去实现,这就演变成Action只是去调用逻辑层来进行业务逻辑的处理,并不是真的在Action里面去实现业务逻辑的处理。

       上面这个Action的属性和属性对应的getter/setter方法,就是用来接收用户请求的数据,并把这些数据封装在Action中,在后续处理中可以访问这些数据。

再仔细察看上面Action的实现中的execute方法的实现,你会发现execute方法里面实现的功能,正是前面学习的MVC的控制器部分的功能。因此,从另外一个角度来说,Struts2的Action也充当着MVC中控制器的角色。

2:那么到底Struts2的Action相当于MVC中的控制器部分还是模型部分呢?

虽然两种说法都过得去,但是目前大家的共识是把Struts2的Action作为MVC中的模型角色来看待。

原因在于,在Struts2运行的时候,是由Struts2中的前端控制器FilterDispatcher分发并调用相应的Action的,此时这个Action仅仅相当于一次请求的命令处理,层面比较小,再加上已经有FilterDispatcher来做控制器进行分发调度了,因此,一般不把Struts2的Action当作MVC的控制器来看,而是当作MVC的模型部分来看。

4.1.3  Action的基本配置

不管Action采用何种实现方式,要正确运行,都需要在struts.xml中进行配置,这是使用Action的基础。

就以前面HelloWorldAction为例来看看Action的基本配置,复杂的配置在后面有详细介绍。HelloWorldAction的定义如下:

 

java代码:
  1. package cn.javass.hello.struts2impl.action;  
  2. public class HelloWorldAction implements Action {  
  3.     //省略了  
  4. }  

那么此时在struts.xml中,Action对应的配置为:

 

java代码:
  1. <action name="helloworldAction" class="cn.javass.hello.struts2impl.action.HelloWorldAction">  
  2. </action>  

对于Action本身的配置非常简单,只需要配置Action的名称,和Action类的全路径名,简单点说就是:一个类的全路径名=这个类的包路径+“.”+这个类的名称。

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4045.html

欢迎访问http://sishuok.com获取更多内容

2
1
分享到:
评论

相关推荐

    研磨Struts2配书视频对应的演示源代码

    2. **拦截器(Interceptors)**:Struts2的核心之一是其拦截器机制,它们在Action执行前后执行一系列预定义或自定义的操作。这些拦截器可以用于登录验证、日志记录、性能监控等。源代码中可能包含了不同类型的拦截器...

    研磨Struts2

    - **Action类**:Action是Struts2的核心组件之一,负责处理用户的请求。本节将详细讲解Action类的设计原则和实现方法。 - **配置文件**:struts.xml用于配置Action的映射关系以及其他一些设置。本节将详细介绍如何...

    研磨struts2 高清版

    由于文件较大,我把这个文档切割为2部分,这是第一部分,请下载完第一部分后一定要下载第二部分,否则不能阅读。

    研磨Struts2配书视频对应的PPT

    《研磨Struts2》这本书是专门针对Struts2框架的学习指南,通过深入浅出的方式讲解了Struts2的核心概念和技术。其配套的PPT和视频旨在帮助读者更直观地理解书中的理论知识,并将其付诸实践。 在研读《研磨Struts2》...

    《研磨Struts 2》PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一份关于《研磨Struts 2》书籍PDF版本的下载资源。为了更好地理解和概括这份资料所涉及的知识点,我们先来了解一下Struts 2框架及其重要性,然后深入探讨《研磨Struts 2》这...

    研磨struts

    《研磨Struts2》这本书主要介绍了Struts2的基础知识、实践应用以及其核心概念。 1. **MVC模式**:MVC是一种设计模式,用于分离应用程序的业务逻辑、数据和用户界面。在Struts2中,Action类代表Controller,负责处理...

    研磨Struts2 高清完整版.part2

    研磨Struts2 高清完整版,请和第一部分一起下载啊

    研磨Struts2_12859679_高清完整版.part2.rar

    研磨Struts2_12859679_高清完整版

    研磨Struts2-高清-完整目录-2011年10月

    研磨Struts2-高清-完整目录-2011年10月,分享给所有需要的人

    研磨设计模式(完整带书签).part2.pdf

    第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章...

    研磨设计模式-part2

    第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章...

    研磨设计模式.part2(共4个)

    第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) ...

    研磨设计模式(完整带书签).part1.pdf

    第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章...

    Java工程师三大框架面试题.pdf

    Java工程师三大框架面试题.pdf

Global site tag (gtag.js) - Google Analytics