Struts1.X中ActionForm的争议
其实对于用Struts1.X进行开发过的人已经知道:ActionForm是Struts1.X中争议最大的一部分
ActionForm本身是一个抽象类,若想将客户端提交的信息自动变成对象赋予到Java类中
就必须提供一个自定义类,让它继承ActionForm,并提供相应的属性,然后自动set和get
该Formbean总是与我们自定义的JavaBean有些重复,所以它是受到最大争议的一部分
在Struts2中就取消了ActionForm,它直接用一个Action来实现ActionForm的功能
客户端提交的信息,如uname,它会自动调用Action的setUname()赋值到uname属性中
Struts2中Action类的简述
在Struts1中,若我们自己建一个Action的话,就一定要继承Struts1.X中提供的Action方可
在Struts2中,它的Action就完全是一个POJO类,是类似于JavaBean的一个类
它不需要依赖于Struts2的任何类文件,也不依赖于Servlet的API,它是很独立的一个文件
它是个非常干净的POJO,它将由Struts2自动调用,完成对客户端提交的信息的自动赋值
然后,在页面中取值的时候,也会自动调用Action中的getXxx()方法
Struts2和Struts1.X中Action的不同
Struts1.X就只有一个Action,它是单例的,因此它里面不能放置存储状态性的东西
Struts2在默认情况下,每发送过来一次请求,它都会生成一个Action实例
因此Struts2的请求之间是独立的互不干扰的,因此它是线程安全的
我们可以在Action中写一个构造方法,然后在构造方法的方法体中输出一个句话
接着到页面中提交几次请求,随后在控制台查看输出,即可测试它是否为每个请求都产生一个实例
另外在继承ActionSupport之后,如果不重写execute()方法的话,它默认的会返回"success"
并且只要类中包含返回String的名为execute的无参方法,那么它就可以成为Struts2中的Action
Struts2中的ActionSupport
当Struts2的Action继承ActionSupport后,就可以直接使用Struts2提供的一些内置功能
在大多数的项目开发中,实际上也是直接继承ActionSupport类,来方便程序的编写
ActionSupport类中提供的validate()方法,可以用来判断值是否为空,或长度范围等等
validate()适合简单的验证,而不适合处理含有业务逻辑的判断
当客户端信息发送到Acton中后,首先会执行validate()方法,接下来才是执行execute()方法
通过查看源码可知:ActionSupport类中的validate()方法的方法体为空
也就是说,如果不重写validate()方法,那么validate()也会执行,但是什么都不会做
ActionSupport类中提供的addFieldError()方法,可以对指定字段增加一个向用户提示的错误信息
它的原形是这样的public void addFieldError(String fieldName, String errorMessage)
第一个参数是页面中表单里的输入域的name值,如<input>或者<s:textfield/>等等
第二个参数是提示信息。该提示信息显示在第一个参数所对应的字段的正上方居中位置
这里实际就可以完成一个国际化处理,即把errorMessage真正内容写在一个properties文件中
然后只需要在errorMessage的位置指定它在国际化资源文件中的key即可
通过查看源码可知:如果将错误消息添加到FieldError中,实际上是添加到了一个Map中
这个Map的key就是属性的名字,它的value就是增加的错误消息,这是它的底层的实现方式
使用<param />节点为Struts2中的Action的属性注值
Struts2中的ForwardAction简单示例
Struts2中的DefaultAction简单示例
分享到:
相关推荐
Struts2通过FilterDispatcher这个Servlet过滤器来拦截所有到达服务器的请求,判断是否需要由Struts2框架处理,如果是,则根据配置的Action映射调用相应的execute()方法。 Struts2的包结构清晰,每个包都有其特定的...
### Struts 2 Action 动态方法调用详解 #### 一、引言 在Struts 2框架中,Action动态方法调用是一项非常实用的功能。它允许开发者在一个Action类中定义多个处理方法,而不仅仅局限于传统的`execute()`方法。这种...
Action是Struts2的核心组件,用于处理用户的请求,并返回相应的结果。在现代Web应用中,数据通常以JSON(JavaScript Object Notation)格式在客户端和服务器之间交换,因为JSON具有轻量级、易于解析的特性。本篇将...
在Struts2中,Action类扮演着控制器的角色,负责处理用户请求并协调模型与视图之间的交互。以下是关于"struts2 Action编写方式"的详细讲解: 1. POJO(Plain Old Java Object)方式: 在Struts2中,Action类可以...
标题和描述均指向了一个关于Struts2框架中Action概念及其使用的电子书下载信息,而标签进一步强调了这一主题。从给定的部分内容来看,这段文本深入介绍了Struts2框架的核心组件——Action,以及如何在MVC(Model-...
在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...
Struts2 Action是该框架中的核心组件,用于处理用户请求并返回相应的响应。 首先,要了解Struts2 Action的开发,需要熟悉其基本概念。Struts2 Action本质上是一个Java类,它包含了处理用户请求的业务逻辑。为了将这...
ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行) 学习点: 1;怎样在页面用ajax调用struts2的action 2;怎样对struts进行配置 3;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行...
Struts2是一个强大的MVC框架,它在设计上吸收了XWork的核心机制,尤其是在Action的处理上。Action是Struts2中的核心组件,它负责处理用户的请求并执行业务逻辑。在Struts2中,Action类需要实现`...
5. **整合测试**:Struts2SpringUnitDemo还涉及到了框架的整合测试,这通常是为了确保Struts2的Action能够顺利地与Spring管理的bean交互。整合测试可能会包括检查Action是否能正确地从Spring容器获取依赖,以及在...
如果你想自学struts2,此文档是很好的自学宝典,经典struts2 in Action,能帮你建立整体的struts2思想,你还在犹豫什么
总的来说,"struts2+json"资源涉及到了Struts2框架中的Action设计、拦截器机制、结果类型的配置,以及AJAX和JSON在Web应用中的使用。理解这些知识点对于开发动态、交互性强的Java Web应用至关重要。
Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...
2. **Struts2 Action**:Action是Struts2的核心组件,它处理用户请求,并通过业务层进行数据处理。Action类通常继承自`org.apache.struts2.dispatcher.ng.ExecuteOperations`或实现了`...
ActionSupport 类则提供了常用功能的实现,但 Action 接口并非强制,任何包含 execute 方法的普通 Java 对象(POJO)都能作为 Struts2 的 Action。 2. **线程模型**: - Struts1 的 Action 实例是单例的,这意味着...
而在Struts2中,Action类可以实现Action接口,也可以实现其他接口以获取自定义服务。更重要的是,Struts2允许任何带有execute方法的普通Java对象(POJO)作为Action,提供了更大的灵活性。 线程模型是另一个关键...
`Struts2_Action` 示例展示了如何定义和执行Struts2中的Action,这是框架的核心部分。通过这个实例,你可以学习到Action的生命周期、结果映射以及如何处理业务逻辑。 7. **Struts2 HelloWorld** `Struts2_Hello...
Struts1 的 Action 类需要继承一个抽象基类,而 Struts2 的 Action 类可以实现一个 Action 接口,使可选和定制的服务成为可能。 2. Struts2 的工作流程: Struts2 的工作流程可以分为九个步骤: (1)客户端提交...
stuts2 项目开发action 类 action 视图文件约定规则