`

Action——Action的配置和作用

阅读更多

 

Action——Action的配置和作用

 

大家在接触Struts2时或许听说过Action这个词,这里您将了解什么是ActionAction都有哪些作用,和一点关于Action的配置。

 

什么是Action

       Struts2中我们通常说的Action通常有这么3个含义。ActionAction类,比如咱们上个章节说到的HelloWorldAction就算是一个Action类。ActionStruts2配置中的一个Action配置条目,比如说咱们上章节在struts.xml<package>配字节下的<action ></action>条目,对应着浏览器中的某种请求。ActionAction方法,就是Action类中的方法了,比如execute方法。

       Action有着以上3方面的意思,所以当以后听到Action的时候要试着去理解此时Action的意思。

 

Action

       什么是Action类呢?或者是说什么样的类才算是个Action类呢?我们举过上章节提及到的HelloWorldAction这个例子,大家可以参考一下这个类,观察一下这个类的特征。

或许您发现这个类继承自一个叫做ActionSupport的类,有个属性,有个方法,和平常写的类几乎没什么两样。确实和普通类几乎是没什么两样,就是它继承了ActionSupport,这能说明什么呢?继承ActionSupport就能说明这个类是个Action类吗?在Struts2Action类完全可以是个普通Java(POJO plain old java object),也可以是扩展自Struts2预定义的类(ActionSupport)。那我要是随便定义个类就算是Action类吗?那可不行,那不就乱了。结合Action类的职能我们可以看出给Action类就是指:能相应客户端请求处理一定业务逻辑的Java类。那么继承的意义有在何处呢?关于这个问题我们在后面章节就会找到答案。

 

Action方法

       什么样的方法才称得上Action方法呢?大家或许又想起来我们上章的execute方法,没错execute方法算得上Action方法。结合execute方法的特征我们可以看出,execute方法没有接受任何参数,返回值类型为String,访问修饰符为public。并且Action方法处理了业务逻辑,处理了客户端请求。那之前HelloWorld类中的getter setter算不算呢?很显然就不算了。

那我要是自己定义一个方法满足execute方法的形式,并且处理业务逻辑,能不能算一个Action方法呢?那看你喜好了,想让它是它就是。为什么这么说?接着向下看就知道了。

OK,我们就要回想一下之前的hello World程序了。当一个请求过来时,Strut2过滤了这一请求,通过struts.xml将请求和处理请求的Action类联系起来,然后处理请求权交给了execute方法,execute方法返回了SUCCESS字符串,又通过struts.xml文件将返回的字符串和要呈现的页面关联了起来。这里面有个可疑之处,当请求交给到Action类处理时,就把这种处理权交给了execute方法。Struts2怎么就能吧处理权交给了execute方法了?假设我又添加了一个方法doSomething,发现Struts2并不能把处理权交给doSomething

显然这里的execute方法是默认Action方法,看来自定义Action方法还是可能的。

 

Action类的作用

       我们可以看出Action类有以下几个作用:

完成请求所需的业务逻辑,当然我们现在知道业务逻辑的具体完成是在Action方法中。确定要显示的页面,页面的确定是由Action方法返回的字符串和struts.xml配合完成的。

提供数据传输的中介,这点体现在我们在Action中定义了某个属性,并且为该属性实现了gettersetter方法,在页面部分就能很神奇的得到数据。既然是中介肯定不能是单向的,当然也应该能得到页面提交过来的数据。大家或许对数据的传递的方式不是很了解,在后面的章节我会说到的,包括简单的例子和怎样从Servlet API中获得或传出数据。

 

配置Action

       说到Action就不得不提到Action的配置,Action的配置是在struts.xml中完成的,注意我们现在说的Action的意思就是指<action></action>条目,OK

       或许现在您对struts.xml中的配置不是很了解,在这里我会说到<action>的相关配置,至于struts.xml的详细配置我决定还是单独拿出一个章节来说清楚好,在关系到Struts2中的某个技术时我会单独说关于该技术的配置并不涉及到其他,这样希望了解配置文件的朋友可以单独看配置章节,就不用费尽心思找了,当然您可以去参考官方文档,至于看官方文档这个途径我还是极力推荐的,迟早你要这样做的。

       首先<action>的配置说明文档是在action-configuration.html 里的,文档中更详细的咯咯。

       <action></action>用来定义一个Action类及导向的视图。

       Action元素有一些属性:

name    action名字。

class     处理Action请求的Action类,注意这里Action类要写全名。也可以不写,不写是由谁来处理请求呢?

method 处理Action请求的Action方法,默认方法是execute。这里就看出来对自定义Action方法的支持了,注意此方法是由些要求的哦。

 

       action 元素的子元素:

           result    定义要导向的视图

 

       result元素的属性

name 一个字符串组成的标识,用来匹配Action方法返回的字符串,从而来确定要导向的视图。name可以不写,默认是success

type 确定结果类型,如redirect redirecAction dispatcher freemarker等,默认为dispatcher,其详细作用后面会详细介绍。

 

       result 元素的子元素

              param 用来定义参数,不同的结果类型有不同的参数。可以有多个。

 

好了action的配置本章节就介绍这些了,action下还有其他元素,比如说使用拦截器的配置,关于拦截器这方面的配置在我之前贴出的文章 Struts2的核心——拦截器 中可以找到。

 

好了,本章内容就这么多了,关于Action的话题我们后面还会再聊,下次再见。

 

我的联系方式:

       MSN: wang4717@live.cn

       Mail: wanglehappy9112@gmail.com

 

1
0
分享到:
评论

相关推荐

    Struts2 ——2、各种Action写法和配置

    NULL 博文链接:https://arne3166.iteye.com/blog/775152

    Hello Struts2 ——Struts2 的配置和第一个Struts2小程序

    NULL 博文链接:https://wang4717.iteye.com/blog/804885

    从入门到精通HTML5——PDF——网盘链接

     9.1.1 处理动作——action 182  9.1.2 表单名称——name 183  9.1.3 传送方法——method 183  9.1.4 编码方式——enctype 184  9.1.5 目标显示方式——target 185  9.2 添加控件 185  9.3 输入类的...

    精通windows server 2008 命令行与powershell 电子书PDF单文件完整版

    9.1.22 show filteraction——显示筛选器操作的配置信息 392 9.1.23 show filterlist——显示筛选器列表 393 9.1.24 show policy——显示IPSec 策略配置信息 393 9.1.25 show gpoassignedpolicy——显示组分配策略的...

    精通windows server 2008 命令行与powershell电子书PDF版(第一卷)

    9.1.22 show filteraction——显示筛选器操作的配置信息 392 9.1.23 show filterlist——显示筛选器列表 393 9.1.24 show policy——显示IPSec 策略配置信息 393 9.1.25 show gpoassignedpolicy——显示组分配策略的...

    精通windows server 2008 命令行与powershell 电子书PDF版(第四卷)

    9.1.22 show filteraction——显示筛选器操作的配置信息 392 9.1.23 show filterlist——显示筛选器列表 393 9.1.24 show policy——显示IPSec 策略配置信息 393 9.1.25 show gpoassignedpolicy——显示组分配策略的...

    精通windows server 2008 命令行与powershell电子书PDF版(第三卷)

    9.1.22 show filteraction——显示筛选器操作的配置信息 392 9.1.23 show filterlist——显示筛选器列表 393 9.1.24 show policy——显示IPSec 策略配置信息 393 9.1.25 show gpoassignedpolicy——显示组分配策略的...

    ensp配置命令大全20条

    action(permit/deny)——允许或拒绝 default action permit 所有流量放行 查询所有配置安全策略:security-pol。 4. 路由配置:ip route-static 0.0.0.0 0.0.0.0 () ——静态路由,ip route-static () 0.0.0.0 255...

    精通windows server 2008 命令行与powershell电子书PDF版(第二卷)

    9.1.22 show filteraction——显示筛选器操作的配置信息 392 9.1.23 show filterlist——显示筛选器列表 393 9.1.24 show policy——显示IPSec 策略配置信息 393 9.1.25 show gpoassignedpolicy——显示组分配策略的...

    Spring in Action中文版 清晰pdf part2

    内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域:核心层、中间层和Web 层。第一部分展示了Spring框架的两个核心概念:反向...——Jack Herrington,Code Generation in Action的作者

    Spring in Action中文版 清晰pdf part1

    内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域:核心层、中间层和Web 层。第一部分展示了Spring框架的两个核心概念:反向...——Jack Herrington,Code Generation in Action的作者

    Struts————实现的验证登陆

    使用Struts做登录验证的步骤: 1 搭建环境: A 导包 B 建配置文件 struts-config.xml C 修改web.xml 2 建一个 ActionForm 3 建一个 Action 4 页面上面的事情

    Struts2 in action中文版

    第三部分 构建视图——标签和结果 第6章 构建视图——标签 108 6.1 入门 108 6.1.1 ActionContext和OGNL 109 6.1.2 虚拟对象ValueStack 111 6.2 Struts 2标签概要 113 6.2.1 Struts 2标签API语法 113 6.2.2 使用OGNL...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT取回InputStream 7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery 7.8 调整音量大小声——AudioManager控制音量 7.9 播放mp3资源文件——raw文件夹...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT取回InputStream 7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery 7.8 调整音量大小声——AudioManager控制音量 7.9 播放mp3资源文件——raw文件夹...

    性能测试进阶指南——LoadRunner11实战 part2

    3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT取回InputStream 7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery 7.8 调整音量大小声——AudioManager控制音量 7.9 播放mp3资源文件——raw文件夹...

    深入浅出struts2

    我在书中还将介绍一些可以提高生产力的方法——包括默认配置项和应当注意的实现特性,可用的多种配置选项和一些开发技术。本书还会就与第三方软件进行集成的话题展开讨论。 2 Don Brown, Struts Ti项目的领导,他在...

    性能测试进阶指南——LoadRunner11实战 part1

    3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment...

Global site tag (gtag.js) - Google Analytics