动态ActionForm

       使用ActionForm可以给开发者在HTML单时带来极大的帮助,它化了代写,并提供了自的数据验证。但是,ActionForm也存在几个非常明的缺点。
      
首先,如果ActionForm对应HTML添加或除一些属性,ActionForm就可能需要修改并重新编译;
      
其次,如果HTML动态的,那ActionForm更是无能力了;
      
另外,ActionForm增加了目中绝对数量!
      
于是从Struts1.1起,就引入了动态ActionForm(DynaActionForm)概念。动态ActionForm使得用须为应用程序 的一个HTML表单创建具体的ActionFormStruts框架包中的DynaActionForm及其子类实现动态 ActionForm。DynaActionForm类扩展了 ActionForm。用可以直接使用DynaActionForm,或者该类以覆盖其validate和reset方法!
       配置
动态ActionForm
      
动态ActionForm支持在Struts配置文件中完成ActionForm的全部配置,无须编写任何外的JAVA代。以下示例:

<!-- 动态FORM演示                        -->
      
<form-bean name="dynaFormForm" type="org.apache.struts.action.DynaActionForm">
      
<form-property name="userName" type="java.lang.String" />
      
<form-property name="userPwd" type="java.lang.String" />
    
</form-bean>

       在上述代<form-bean>的type属性指定了使用Struts框架包中的DynaActionForm,用也可以实现自定动态ActionForm。
       在Action中
访问动态ActionForm
       同 普通的ActionForm一ActionJSP都可以访问动态ActionForm,而访问方式也基本一致。访问动态ActionForm与访 普通的ActionForm的最大区在于属性的访问方式不同。在准的ActionForm中,针对每一个属性都提供了getter和setter 方法来取和置属性,而DynaActionForm把所有的属性保存在一个Map 象中,因此访问DyanActionForm中的属性与访问Map象中的方法似:
里我用上面配置的动态ActionForm来示例如何访问动态ActionForm

DynaActionForm dynaForm =(DynaActionForm)form;
         String userName = (String)dynaForm.get("userName");
         String userPwd = (String)dynaForm.getString("userPwd");
        
//dynaForm.set("userName", "fengyan");


      
动态ActionForm的表单验证
       DynaActionForm validate()方法没有提供任何默验证。可以通义扩DynaActionForm的子,然后覆盖validate()方法,但是以程方式来验证动态ActionForm并不是一理想的法。动态ActionForm的验证应该使用Struts的Validator验证插 件。Validator插件允采用特定的配置文件为动态ActionForm配置验证规则,如检查入域,日期时间等 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值