Struts中validator验证使用时的要注意的几个问题

第一:action标签中的validate属性是否设置为true;
第二:plug-in标签中是否加入了ValidatorPlugIn(JBuider中可以自动添加);
第三:validation.xml是否有写(当然也可以不用它,而直接在validator里直接写,但还是感觉前者比较清晰),form标签中的name属性是否写对;
第四:如果用向导生成ValidatorForm,注意要删除自动生成的validate方法,不然Validator验证框架不会起作用(如果是动态ActionForm就没有这个问题了);
第五:资源文件是否有写;
第六:页面显示标签的使用(我只用过 <html:errors> 和 <html:messages> ,感觉还是前者比较方便,可以通过property属性指定ActionError实例的名称,可控性高) 。

其实Validator验证框架的实现也是通过validate方法和reset方法,跟ActionForm一样,只不过它通过配置文件重写了这些方法,因而不再需要你手动编码。

验证的大概顺序是这样:
首先,ActionServlet接收HTTP请求,然后创建ValidatorForm对象(如果之前有scope为session的Form实例存在,那么就直接拿来),接着执行reset方法(并不是reset就等于清空Form实例,而是把它恢复到初始值,不一定为空,因为有的动态Form是带初始值的),接下来再用表单里的数据填充ValidatorForm实例,最后用validate方法对封装的数据进行验证,如果通过则继续进行,转向到指定的Action,否则返回错误。 </html:messages> </html:errors>

你可能感兴趣的:(html,框架,xml,struts)