深入理解ActionForm

深入理解ActionForm1 动态 ActionForm 动态 ActionForm 是为了避免标准 ActionForm 膨胀而设计的 使用动态 ActionForm 可以 得到标准 ActionForm 的所有功能 在 struts config xml 文件中定义动态 ActionForm 如 在 Action 中使用动态 ActionForm 参见 DynaActionF

1、动态ActionForm

* 动态ActionForm是为了避免标准ActionForm膨胀而设计的,使用动态ActionForm可以
得到标准ActionForm的所有功能
* 在struts-config.xml文件中定义动态ActionForm,如:













*在Action中使用动态ActionForm,参见DynaActionFormTestAction.java
DynaActionForm daf = (DynaActionForm)form;
String name = (String)daf.get(“name”);
Integer age = (Integer)daf.get(“age”);

动态ActionForm其实是把页面中的html元素的名字和值放到了map中,所以通过get方法可以取出相应的值
动态ActionForm采用EL表达式的输出方式,${dynabean.map.prop}, 参见:dyan_actionform_success.jsp
动态Action的验证,通常使用动态验证框架validator
———————————————————————————————–
2、采用struts上传
* 页面中的配置如下:




* 在ActionForm中使用FormFile来接收上传的文件,参见:UploadActionForm.java
* 在Action中调用FormFile取得上传文件数据,采用流输出,完成上传,参见:UploadTestAction.java

上传文件大小的设置:

在接收页面如何获得上传文件的属性:
${ActionForm的id.FormFile的id.FormFile中封装的属性名}
参加:upload_success.jsp
———————————————————————————————–
3、测试ActionForm类型的自动转换
* boolean:yes,1,on,true都会转换成True类型,而且忽略大小写,其他情况转换成false
* Date类型的转换:
* 如果是java.sql.Date,页面日期的格式必须为yyyy-mm-dd,才可以转换
* 如果是java.util.Date,默认情况下struts无法转换

* 自定义转换器的实现步骤
* 实现converter接口,实现convert方法
* 将实现的conerter注册,通常情况采用servlet注册
* 采用servlet注册需要注意标签的配置,

10
(也可以采用struts plugin注册)

4、空字段问题
* 如果html没有写input输入域,jsp脚本接收到的值为null,el表达式则为空串
* 如果html中存在input输入域,没有输入值,那么jsp脚本和el表达式接收到的都是空串






































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205815.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:07
下一篇 2026年3月19日 下午5:08


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号