ValidatorActionform
是验证框架针对action的
ValidatorForm 是验证表单的
如果ActionForm 继承了ValidatorForm
那么以后的操作中就不用写验证了.
ActionForm 是struts 1版中的
ActionForm是窗体的对象化表示,它本身其实是个JavaBean,除了标准的getter与setter等方法之外,还提供有reset()、validate()等方法供Struts组件呼叫。
当透过发送请求来到ActionServlet后,ActionServlet会从ActionMapping对象中得知所使用的ActionForm对象,这是在struts-config.xml中设定的,如果所需的ActionForm还不存在就生成一个,之后一直使用它,ActionMapping与ActionForm对象会被当作参数传递给Action对象。
在Struts 1.1中,ActionForm生成之后,会执行RequestProcessor的processPopulate()方法,首先它会呼叫 ActionForm的reset()方法,您可以在当中作一些重清ActionForm属性的动作,然而窗体的参数值会与ActionForm的 setter进行比对,如果有名称符合的就将窗体的参数值设定给对应的属性。
validator框架 validate方法 ActionForm/ValidatorForm/ValidatorActionForm
truts 1.3为例
validate方法有三种来源,分别继承自ActionForm, ValidatorForm, ValidatorActionForm
不同点:
(1).继承自ActionForm的FormBean,必须覆基类ActionForm的validate()方法,仅能做服务器端检验。需要在struts config.xml中配置中,Action一定要将validate属性设置为validate="true“. 不是Struts Validator框架,也不需要配置文件信息。
(2).继承自ValidatorForm 或 ValidatorActionForm 的FormBean,是Struts Validator框架。可以做服务器端检验,也可以通过生成JavaScript的方式实现客户端检验。
(3).作为Struts Validator框架, 必须不能覆盖基类的validate()方法。即必须使用基类的validate()方法,才能保证错误验证正常进行。否则就会屏蔽掉在Validation.xml中定义的验证部分,在系统运行时,validation.xml里对应此FormBean定义的错误验证部分不执行。
(4).作为Struts Validator框架,需要validator.xml 和 validator-rules.xml 配置文件,无论是服务器还是客户端验证。服务器端验证:validate="true“。客户端验证:validate="false“
(5).ValidatorForm 和 ValidatorActionForm 的区别。
一、在对应的Form Beans中重载validate方法
在struts-config.xml文件中,action节点下有“validate”这样一个属性。在struts框架中,默认属性是validate=”true”。所以如果想通过Form Baens的重载validate方法来验证数据的话,可以不用理会这一点。题外话:如果你在struts-config.xml文件中,设置validate="false"的话,validate方法将不起作用。这一点同样对Validate框架来验证数据起作用。
二、通过Validator框架来验证数据
1、配置struts-config.xml文件,增加:
2、配置validation.xml文件