`

动态ActionForm

阅读更多

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(目标对象,源对象)方法进行对象值的复制。

分享到:
评论

相关推荐

    Struts高级开发_动态ActionForm.avi

    该avi很好的讲解动态actionForm,通过练习可以理解它的运行过程

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

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

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

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

    struts中配置动态ActionForm

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

    三层架构及反射工厂,数据库连接

    2. 开发Struts项目,建议用动态ActionForm+Validateor,以及DispatchAction,其他什么Action几乎就别用了。 3. 不管开发项目的时候发生什么,千万别动框架。 4. 框架搭建好后把不需要的JAR去掉。 5. 测试项目的时候去...

    Struts1.3 备忘笔记

    05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,但是它不能实现验证功能,演示人机交互实例。 06 Struts_06Filter : 中文编码的统一处理,通过Struct的请求...

    struts.doc

    struts标签、动态ActionForm、上传组件、struts验证框架 的个人小总结,分享

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

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

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 ...

    李兴华Java Web开发实战经典(高清版) Part2

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及配置 ...

    java web 视频、电子书、源码(李兴华老师出版)

    17.4、动态ActionForm 17.5、Action深入 17.5.1、ForwardAction 17.5.2、IncludeAction 17.5.3、DispatchAction 17.6、验证框架 附录A:实用工具 18.1、JavaMail 18.1.1、James邮件服务器的下载及...

    struts中validator验证demo

    struts中的validator验证demo 其中包括actionform的,动态actionform,还有js提示。 其中这部分内容博客中也有讲解,博客提示:http://blog.csdn.net/llhhyy1989/article/details/8590345

    struts课件1

    我培训时用的课件,这是第一篇。内容涵盖validator框架,国际化, DispatcherAction,MappingDispatcherAction,LookupDispatcherAction,动态ActionForm,重复提交等。用心做的,用心整理的。有案例,有练习。

    struts课件2

    我培训时用的课件,这是第二篇。内容涵盖validator框架,国际化,DispatcherAction,MappingDispatcherAction,LookupDispatcherAction,动态ActionForm,重复提交等。用心做的,用心整理的。有案例,有练习。

Global site tag (gtag.js) - Google Analytics