1、动态ActionForm
动态ActionForm是为了避免标准ActionForm膨胀而设计的,使用动态ActionForm可以获得标准
ActionForm的所有功能
* 在struts-config.xml文件中定义动态ActionForm,如:
<form-beans>
<form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String" />
<form-property name="age" type="java.lang.Integer"/>
</form-bean>
</form-beans>
*在Action中使用动态ActionForm,参见DynaActionFormTestAction.java
DynaActionForm daf = (DynaActionForm)form;
String username = (String)daf.get("username");
Integer age = (Integer)daf.get("age");
动态ActionForm其实是把页面中的html元素的名字和值放到了map中,所以通过get方法可以取出相应的值
动态ActionForm采用EL表达式的输出方式,${dynabean.map.prop}, 参见:dyna_actionform.jsp
动态Action的验证,通常使用动态验证框架validator
2、采用struts上传文件
* 页面的配置,如:
<form action="upload.do" method="post" enctype="multipart/form-data">
标题:<input type="text" name="title"><br>
文件:<input type="file" name="myfile"><br>
<input type="submit" value="提交">
</form>
* ActionForm中使用FormFile来接收上传的文件,参见:UploadActionForm.java
* 在Action中调用FormFile取得上传文件数据,采用流输出,即完成上传,参见:UploadTestAction.java
* 采用<controller/>标签配置上传参数,如:<controller maxFileSize="10M"/>
3、空字段测试
* 在表单中没有input输入域,jsp脚本接收到的值为null,el表达式接收到的值为空串
* 如果表单中的值,没有输入,那么jsp脚本和el表达式接收到的值都为空串
4、测试ActionForm类型的自动转换
* boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他情况转换成false
* Date类型的转换:
* 如果是java.sql.Date,页面日期的格式必须为yyyy-mm-dd,才可以转换
* 如果是java.util.Date,默认情况下struts无法转换
* 自定义转换器的实现步骤
* 实现converter接口,实现convert方法
* 将实现的conerter注册,通常情况采用servlet注册
* 采用servlet注册需要注意标签的配置,<load-on-startup>10</load-on-startup>(也可以采用struts plugin注册)
Struts对ActionForm的自动搜集过程:
* 将页面数据放到map中,其中map中的key为页面中的名称,map中的value为页面中的value值
* 调用BeanUtils.setProperties方法,将map中的值逐个设置到ActionForm实例上,对于ActionForm中的每个属性
根据类型调用相应的Converter,然后调用相应的convert方法,将相应的字符串转换成ActionForm中指定的类型
可以通过BeanUtils.copyProperties(目标对象,源对象)方法进行对象值的复制。
分享到:
相关推荐
动态ActionForm则旨在解决这个问题,它允许我们在运行时动态地创建和绑定ActionForm,而不是预先定义固定的ActionForm类。 在讲解动态ActionForm的过程中,通常会涵盖以下几个关键点: 1. **ActionForm接口**:...
在"第五章(动态ActionForm与控制器)"的课堂资料中,我们将深入理解Struts框架中的关键概念,特别是ActionForm和控制器的动态使用。 一、ActionForm类 ActionForm是Struts框架中的表单bean类,用于接收用户在JSP页面...
在Struts的第五章,我们主要探讨的是动态ActionForm和控制器的相关概念及其应用。 **动态ActionForm**:在传统的Struts应用中,ActionForm类用于在Controller层和View层之间传递数据。每个表单通常对应一个...
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!
#### 一、Struts框架简介与动态ActionForm概念 Struts是一个基于Java EE的MVC(Model-View-Controller)框架,它为Web应用程序提供了一个结构化的解决方案。在Struts框架中,ActionForm对象扮演着极其重要的角色...
本篇将深入探讨Struts1的控制器组件以及动态ActionForm的概念。 **Struts1控制器组件** 1. **ActionServlet组件**: ActionServlet是Struts1框架的中心控制器。它接收HTTP请求,通过doGet或doPost方法处理这些请求...
在本文中,我们将深入探讨Struts的一些关键概念,如ActionForm、动态ActionForm、DispatchAction以及Validator验证框架。 ActionForm是Struts框架中用于接收用户输入并传递给Action处理的关键组件。它存储了HTTP...
DynaActionForm继承自ActionForm,提供了动态Bean的功能,而ValidatorForm继承自ActionForm,提供了表单验证功能。 2. ActionForm的方法 ActionForm提供了两个重要的方法:reset()和validate()。reset()方法用于...
本课件主要涵盖了Struts框架中的几个关键概念和技术,包括Validator框架、国际化支持、不同类型的DispatcherAction、动态ActionForm以及如何处理表单的重复提交等问题。以下是针对这些知识点的详细解释。 #### 二、...
- **使用动态ActionForm**:通过实例演示如何在实际开发中使用动态ActionForm来处理动态生成的表单数据。 #### 九、Struts的标签库 - **使用Struts标签的基本配置**:介绍如何启用Struts标签库以及相关的配置信息...
本章主要讨论Struts框架中的高级特性,包括常用Action的使用、动态ActionForm以及验证框架。 首先,我们来看看Struts中的两种常用Action: 1. **ForwardAction**: ForwardAction的作用是定义一个逻辑路径到具体的...
动态ActionForm允许开发者根据需要动态地创建ActionForm对象,这有助于减少代码重复并提高代码的灵活性。 **4.2 动态ActionForm的数据验证** 对于动态ActionForm,同样可以通过配置文件来定义其数据验证规则。 **...
2. 动态ActionForm:在Struts中,ActionForm对象用于封装HTTP请求中的参数,动态ActionForm可以根据不同的请求创建不同的表单类。 3. ActionServlet:作为Struts的核心,ActionServlet负责拦截所有请求,解析请求...
2. 开发Struts项目,建议用动态ActionForm+Validateor,以及DispatchAction,其他什么Action几乎就别用了。 3. 不管开发项目的时候发生什么,千万别动框架。 4. 框架搭建好后把不需要的JAR去掉。 5. 测试项目的时候去...
最后,为了演示动态ActionForm,我们可以创建一个新的`LoginAction2`类,同时在`struts-config.xml`中配置这个新的Action和ActionForm。这展示了Struts如何支持多个Action处理同一表单的不同行为。 总结一下,本...
### Struts标签、动态ActionForm、上传组件及Struts验证框架知识点详解 #### 一、Struts标签 **Struts** 是一款基于 **MVC**(Model-View-Controller)设计模式的开源Java Web框架,它能够帮助开发者构建可扩展且...
- **使用动态ActionForm:** 动态ActionForm可以根据用户请求动态生成表单字段。 - **Struts的数据校验** - **ActionForm的代码校验:** 通过重写`validate()`方法实现。 - **Action的代码校验:** 直接在Action...
动态ActionForm允许在运行时动态地创建和配置ActionForm,提高了代码的复用性和灵活性。 4. **Validator验证框架**:Validator框架是Struts的一个插件,用于验证用户输入的数据。它可以自定义验证规则,并在提交...
- **实现方式**:在Struts配置文件`struts-config.xml`中,通过指定`<form-bean>`的`type`属性值为`org.apache.struts.action.DynaActionForm`来创建动态ActionForm。此类能够在内部Map中存储数据。 #### 三、采购...
在Java Web开发中,Struts框架是一个非常流行的MVC(Model-View-Controller)架构,它简化了构建基于JSP的动态网站应用的过程。ActionForm是Struts框架中一个关键的组件,它充当了Controller与Model之间的桥梁,负责...