Struts1.2中ActionForm与ValidatorForm、DynaActionForm的区别

55 篇文章 0 订阅
24 篇文章 0 订阅

一、ActionForm和ValidatorForm区别:

      一个Form继承了ValidatorForm 就不用写具体的验证,但是需要提供:validation-rules.xml 和 validation.xml配置,ValidatorForm会调用validate() 方法进行验证,而验证规则是在以上两个文件定义。

说明:

       1.相同点:ActionForm和ValidatorForm都不是动态的Form,所以一定是一个form对应一个FormBean类;

       2.不同点:如果是继承了ValidatorForm的话,就不必在FormBean中加入validate()方法(应该说是不必覆盖其方法,而实际上仍是调用了validate()方法进行验证,而验证规则是在validation-rules.xml和validation.xml两个文件中有定义)。

       3.如果在ValidatorForm中重写了validate方法,则程序不会从validation-rules.xml和validation.xml两个文件中进行验证.而是执行重写了的validate方法里面的内容。如果不重写此方法,则仍然会执行此方法,而此方法中默认会从上述两个文件中进行验证。
       所以,我们多数从继承了ValidatorForm的类中看到没有validate方法,取而代之是修改成的validator方法,目的是去除掉一个重写的validate()方法,而且validator()方法也不会被使用,巧妙的屏蔽了通过validate方法来验证的功能。


补充:

服务器验证和客户端验证(通过javascript)的区别:

       1.客户端验证,由于暴露代码,会降低安全性,服务器验证相对安全;

       2.客户端验证减缓服务器负担;

       3.在按确定提交表单的时候,是先进行验证,如果验证成功,则继续使用validate方法进行验证。如果验证不成功,则中止验证过程,不会使用validate方法。


二、ActionForm和DynaActionForm区别

     1.DynaActionForm是动态的,由ActionForm继承而来,之所以有这个东西是因为:它特点是不需要FormBean,而是在struts-config.xml中通过form-property来设置form的表单字段属性。优势是减少在大型开发过程中formbean的增加而显得程序臃肿,给维护和升级带来极大的不便。

       2.需要注意的是:在JSP或Action中访问动态ActionForm时与标准的ActionFrom有所不同,标准ActionForm为每个属性均提供了一对getXXX()/setXXX()方法,通过调用getxxx()/setxxx()方法即可读取或设置ActionForm某个属性.而DynaActionForm则把所有的属性保存在一个Map类对象中,只能通过get()和put()来存取其属性值。如果从动态表单实例中读取会员的注册信息:

String username=form.get("username").toString();
String password=form.get("password').toString();
String phone=form.get("phone").toString();
String email=form.get("email").toString();
String address=form.get("address").toString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值