`
xmx0632
  • 浏览: 119506 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

使用动态ActionForm

阅读更多
6.使用动态ActionForm

在Struts framework中,ActionForm对象用来包装HTML表格数据(包括请求),并返回返回动态显示给用户的数据。它们必须是完全的JavaBean,并继承.Struts 里面的ActionForm类,同时,用户可以有选择地覆盖两个缺省方法。

该特性能节省很多时间,因为它可以协助进行自动的表现层的验证。ActionForm的唯一缺点是必须为不同的HTML表格生成多个ActionForm 类以保存数据。例如,如果有一个页面含有用户的注册信息,另一个页面则含有用户的介绍人的信息,那么就需要有两个不同的ActionForm类。这在大的应用系统中就会导致过多的ActionForm类。Struts 1.1对此做出了很好的改进,引入了动态ActionForm类概念

通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置文件完成ActionForm的全部配置;再也没有必要在应用程序中创建具体的ActionForm类。具体配置方法是:在Struts的配置文件通过增加一个<form-bean>元素,将type属性设定成DynaActionForm或它的某个子类的全名。下面的例子创建了一个动态的ActionForm名为logonForm,它包含两个实例变量:username 和 password.



动态的ActionForm可以用于Action类和JSP,使用方法跟普通的ActionForm相同,只有一个小差别。如果使用普通的ActionForm对象则需要提供get 和 set方法取得和设置数据。以上面的例子而言,我们需要提供getUsername() 和 setUsername()方法取得和设置username变量,同样地有一对方法用于取得和设置password变量.

这里我们使用的是DynaActionForm,它将变量保存在一个Map类对象中,所以必须使用DynaActionForm 类中的get(name) 和 set(name)方法,其中参数name是要访问的实例变量名。例如要访问DynaActionForm中username的值,可以采用类似的代码:

String username = (String)form.get("username");

由于值存放在一个Map对象,所以要记得对get()方法返回的Object对象做强制性类型转换。

DynaActionForm有好几个很有用的子类。其中最重要的是DynaValidatorForm ,这个动态的ActionForm和Validator 一起利用公共的Validator包来提供自动验证。这个特性使你得以在程序代码之外指定验证规则。将两个特性结合使用对开发人员来说将非常有吸引力。
分享到:
评论

相关推荐

    struts课堂资料\第五章(动态ActionForm与控制器)2

    它可能涵盖了如何创建和使用动态ActionForm,如何实现和调用reset()方法,以及如何利用ValidatorForm进行数据验证等内容。通过实际操作这个项目,开发者可以更好地理解和掌握Struts中控制器的工作原理和动态表单的...

    Struts高级开发_动态ActionForm.avi

    动态ActionForm则旨在解决这个问题,它允许我们在运行时动态地创建和绑定ActionForm,而不是预先定义固定的ActionForm类。 在讲解动态ActionForm的过程中,通常会涵盖以下几个关键点: 1. **ActionForm接口**:...

    struts课堂资料\第五章(动态ActionForm与控制器)

    在"第五章(动态ActionForm与控制器)"的课堂资料中,我们将深入理解Struts框架中的关键概念,特别是ActionForm和控制器的动态使用。 一、ActionForm类 ActionForm是Struts框架中的表单bean类,用于接收用户在JSP页面...

    struts_进阶

    #### 二、动态ActionForm的配置与使用 ##### 1. 配置动态ActionForm 配置动态ActionForm的关键在于Struts的配置文件(通常为struts-config.xml)。首先,我们需要定义一个`<form-bean>`元素,并将其`type`属性设置...

    Struts_学习笔记之ActionForm

    ActionForm的property必须声明然后才可以使用,不过在查询时我们常常需要输入一些查询条件,这些查询条件(property)其实不需要在formbean中声明,可以使用Map对象来封装整个查询表单提交的数据。 4. ActionForm的...

    struts课件2

    - 当需要根据用户输入动态生成表单字段时,可以使用动态ActionForm。 - 动态ActionForm也可以用来处理复杂数量不确定的数据结构,如表格中的行数据。 #### 六、重复提交问题 表单的重复提交是一个常见的问题,特别...

    struts中配置动态ActionForm

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!

    整合Struts_Hibernate_Spring应用开发详解

    - **使用动态ActionForm:** 动态ActionForm可以根据用户请求动态生成表单字段。 - **Struts的数据校验** - **ActionForm的代码校验:** 通过重写`validate()`方法实现。 - **Action的代码校验:** 直接在Action...

    ActionForm里的get和set方法

    随着技术的发展,很多现代Web框架,如Spring MVC,已经不再直接使用ActionForm,而是推荐使用模型驱动(Model Driven)或命令对象(Command Object)模式。这些模式同样利用get和set方法来绑定表单数据,但提供了更...

    Eclipse开发入门与项目实践 源代码

    案例5-5 使用动态ActionForm实现身份验证中的新用户注册 193 5.4.3 Validator验证框架 197 案例5-6 使用Validator验证框架实现注册表单的数据验证 201 5.4.4 Struts标记库 206 案例5-7 采用Struts标记库...

    提交多行数据到Struts的ActionForm的List属性中

    这里,我们为每个表单字段定义了一个动态的属性名,如`items[0].name`和`items[1].description`,这使得Struts在处理POST请求时能够将这些值映射到一个List类型的属性上。假设我们有一个名为Item的类,它有name和...

    [摘]Struts 学习笔记之ActionForm

    博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...

    Struts1 控制器组件和动态表单详解

    本篇将深入探讨Struts1的控制器组件以及动态ActionForm的概念。 **Struts1控制器组件** 1. **ActionServlet组件**: ActionServlet是Struts1框架的中心控制器。它接收HTTP请求,通过doGet或doPost方法处理这些请求...

    ActionForm属性中存在对象数组如何处理

    3. 在JSP页面中动态创建表单,使用数组索引引用对象属性。 4. 在Action类中从ActionForm中获取对象数组,并进行进一步处理。 通过这种方式,Struts框架能够处理ActionForm中包含对象数组的场景,允许用户在一次表单...

    struts动态表单实例

    5. **JSP页面**: 在JSP页面中,你可以使用`<html:form>`标签来创建表单,通过指定DynaActionForm的名称,可以动态地生成表单元素。`<html:dynamic>`标签用于根据ActionForm的属性动态生成输入控件。 6. **控制器层...

    Struts 之旅 - 动态表单

    可以通过在ActionForm中使用ArrayList或Map来存储这些动态字段。当表单提交时,Struts框架会自动将表单数据填充到ActionForm中。 3. **表单验证**:Struts提供了强大的验证机制,可以在ActionForm类中定义校验规则...

    struts例子struts例子

    在本文中,我们将深入探讨Struts的一些关键概念,如ActionForm、动态ActionForm、DispatchAction以及Validator验证框架。 ActionForm是Struts框架中用于接收用户输入并传递给Action处理的关键组件。它存储了HTTP...

    Struts动态表单验证

    动态验证意味着验证规则不是硬编码在ActionForm或Validation.xml中,而是根据用户的操作或者业务逻辑动态生成。这可以提高代码的可维护性和灵活性。例如,某些字段可能只在特定条件下才需要验证,或者验证规则会...

Global site tag (gtag.js) - Google Analytics