struts1——静态ActionForm与动态ActionForm



      在struts1中,我们可以使用ActionForm来获取从client端提交上来的数据,并通过action配置中的name属性,将某个ActionForm配置到某次请求应答的Action中,作为本次请求应答的数据传输介质,ps,其实还是侧重于数据在客户端的获取,因为赋值部分框架帮我们做好了。


          对于ActionForm的使用,我们有两种方式:一是通过建立类的方式,二是直接写入配置文件的方式。



一,静态ActionForm的使用


            首先我们需要定义类,注意这个类要继承ActionForm类:


       定义好类之后,将我们要获取的客户端数据作为成员变量写入类中,确保get后面的名称首字母小写后,与我们客户端提交的数据的name名称一致。


       之后,在struts的配置文件中配置此类:



    为了关联ActionForm与Action关系,还需要在Action的name配置中,指明此Action使用的是哪个form-bean:


 


 在Action中获取request中的数据,只需强转成我们定义的ActionForm类即可:





二,动态ActionForm使用


         如果我们系统比较大的话,试想一下,我们要为每一个Action配置一个ActionForm类来实现数据的传递,这样的话,ActionForm就比较多。这时候,我们可以使用动态ActionForm将ActionForm配置在配置文件中.


       


      动态ActionForm的type都要配置成 :   type="org.apache.struts.action.DynaActionForm" ,将类的property指明类型之后配置到form-property中。


   服务端取值:


     


      动态ActionForm的值都存储到一个map中,key-value形式,key为我们配置文件中的form-property的name的值,得到value之后进行强转。


  表现层取值:






三,静态ActionForm跟动态ActionForm的比较


1,两种ActionForm都能实现相同的功能:比如数据验证,reset数据。

2,使用类的方式缺点是项目大的话,类较多,每次增加,都要重新编译;但是Action中取值简单;

3,使用动态ActionForm省去了类,只需在配置文件中配置,方便修改,缺点是取值不方便,map里面get的时候,如果key指明的不正确,容易出错。











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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值