在Struts中ActionForm也是一个很重要的组件。他的主要作用就是收集数据。
1、ActionForm的作用
ActionForm 用来收集表单中的数据,可以将其看作是模型和视图的中介,它负责保存视图中的数据供模型或者视图使用。同时ActionForm 具有的过滤保护的作用,可以在将ActionForm数据发送到 Action 处理之前进行验证。
2、ActionForm的执行时间
ActionForm 是与一个或多个 ActionConfig 关联的JavaBean,在相应的 action 的 execute 方法被调用之前,ActionForm 会自动利用请求参数来填充自己(初始化属性)。
3、定义自己的ActionForm
ActionForm 是一个抽象类,必须通过继承来实现自己的类。在ActionForm中需要定义要收集的属性名,即表单中的信息,并为每个属性设置getter和setter方法,举个例子:
Jsp文件:
则对应的自己的ActionForm为:
需要注意的是,因为ActionForm利用属性的 getter 和 setter 方法来实现初始化,所以getUsername中的Username(首字母可大写)应该与表单中name="username"相同。
4、ActionForm的验证
初始化完毕后,在ActionServlet调用Action类前,ActionForm 的 validate() 方法被调用,我们可以在其中来检查请求参数的正确性和有效性:
Public ActionErrors validate(ActionMapping mapping, ServletRequest request)
Public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
我们需要在自己的ActionForm bean里覆盖validate()方法,并在配置文件里设置<action>元素的validate为true。调用validate()后,如果返回的ActionErrors不是null,则ActinForm会根据错误关键字将ActionErrors存储在请求属性列表中。
如果返回的不是null,而且长度大于0,则根据错误关键字将实例存储在请求的属性列表中,然后ActionServlet将响应转发到配置文件<action>;元素的input属性所指向的目标。
如果需要执行特定的数据有效性检查,最好在Action类中进行这个操作,而不是在ActionForm类中进行。
验证返回null之后ActionForm 将被作为参数传给 action 的 execute 方法以供使用。
5、ActionForm的生命周期
ActionForm bean 的生命周期可以设置为 session(缺省)和 request,当设置为 session 时,注意在 reset() 方法中将所有的属性重新设置为初始值。
public void reset(ActionMapping mapping,HttpServletRequest request)
public void reset(ActionMapping mapping,ServletRequest request)
6、ActionForm的配置:
Struts框架假设用户在应用程序中为每个表单都创建了一个ActionForm bean,对于每个在struts-config.xml文件中定义的bean,框架在调用Action类的perform()方法之前会在相关联的关键字下,检查用于适当类的bean实例,没有可用的bean,它就会自动创建一个新的bean,对于请求中每个与bean属性名称对应的参数,Action调用相应的set方法设置。当Action
perform()被调用时,最新的ActionForm bean传送给它,参数值就可以立即使用了。
上面例子的Form bean的配置举例:
分享到:
相关推荐
在Struts中,ActionForm类是处理用户输入数据的核心组件,它封装了请求参数并负责业务逻辑验证。本文将详细讨论如何在Struts中使用ActionForm的`validate`方法进行数据验证。 `validate`方法是在ActionForm中定义的...
它继承自org.apache.struts.action.ActionForm接口,并包含多个字段来存储表单中的数据。当用户提交表单时,Struts框架会自动将表单数据填充到ActionForm实例中。 为了提交多行数据,我们通常会在HTML页面中使用多...
ActionForm是Struts框架中的一个重要组件,它是模型层与控制器层之间的桥梁,用于处理用户在表单中提交的数据。 在Struts框架中,ActionForm类负责收集、验证和封装来自用户界面的数据。当用户通过HTML表单提交请求...
ActionForm是Struts1中处理用户输入的核心组件,它负责接收、验证和封装来自表单的数据。在本文中,我们将深入探讨如何利用ActionForm实现表单验证,并在验证失败时追加错误信息。 1. **ActionForm介绍** ...
主要是actionForm的基本验证,重写validate方法,返回actionErrors,然后根据资源文件显示错误。 这是一个demo例子,直接导入eclispe中即可。 并且这部分内容会在相应的博客中介绍,稍后会更新博客。
Struts学习笔记之ActionForm ActionForm是Struts框架中的一种重要组件,用于封装和处理用户的表单数据。在Struts中,ActionForm是继承自JavaBeans的,主要用于处理用户的表单数据和业务逻辑。下面是ActionForm的...
Struts ActionForm是Java Web开发中Struts框架的一个核心组件,主要用于处理用户在表单中的输入数据。在早期的Struts 1版本中,ActionForm是MVC设计模式中的Model部分,它作为控制器(Controller)与视图(View)...
4. **使用ActionForm**: 将Spring的ApplicationContext引入Struts,使ActionForm能够通过依赖注入获取SessionFactory,然后在业务逻辑中调用Hibernate的方法进行数据库操作。 5. **配置过滤器**: 设置Struts与Spring...
ActionForm是Struts框架中一个关键组件,用于处理用户从视图层提交的数据,并与控制器进行交互。这篇学习笔记将深入探讨ActionForm的作用、使用方法以及它在Struts架构中的位置。 在MVC模式中,ActionForm扮演了...
ActionForm是Struts框架中的一个重要组件,主要用于处理用户从视图层提交的数据。在传统的Struts开发中,ActionForm类通常用于封装请求参数并传递给业务逻辑层进行处理。 动态ActionForm的概念是为了提高代码的灵活...
ActionForm在早期的Struts1中被广泛用于接收和验证用户输入,但在Struts2中,这个概念已经被更先进的模型驱动机制所取代。不过,这里提到的"ActionForm自动填充表单"可能是指Struts2中的一种特性,即模型驱动...
Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
【ActionForm】是Java Web开发中的一个概念,主要在Struts框架中被广泛使用。它是一种模型层对象,用于接收用户从视图层(通常是一个HTML表单)传递过来的数据,并将这些数据转发到控制器(Controller)进行业务逻辑...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
在这个名为“Struts中不同的Action和ActionForm组合.rar”的压缩包中,主要探讨的是Struts框架中Action和ActionForm的组合使用方式,以及它们在处理用户请求和数据验证过程中的作用。以下是对这个主题的详细解释。 ...
在"第五章(动态ActionForm与控制器)"的课堂资料中,我们将深入理解Struts框架中的关键概念,特别是ActionForm和控制器的动态使用。 一、ActionForm类 ActionForm是Struts框架中的表单bean类,用于接收用户在JSP页面...
输入捕获方面,Struts1使用ActionForm对象来收集用户输入,ActionForm必须继承基类,有时会导致代码冗余。Struts2则直接将Action的属性作为输入属性,不再需要额外的ActionForm,支持更丰富的对象类型,如业务对象,...
总结来说,Struts1.2处理包含列表对象的表单提交涉及到表单设计、ActionForm的创建、Action类的编写以及Struts框架的内部机制。通过理解这些知识点,开发者能够有效地管理用户输入的复杂数据结构,并在后端进行处理...