疝气挂号什么科室:struts2.x中的框架校验

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 11:47:20

字段校验:我来验证谁,拿谁来验证!

基于xml文件来进行校验(错误信息也是保存在fielderror对象中),针对每一个action类进行对应一个xml文件来校验。只需要写好相应的xml文件即可。不需要作其它的配置。

格式:action类名-validation.xml   例如:RegisterAction-validation.xml

xml文件头格式如下:xml文件是由dtd文件所决定的。

        "-//OpenSymphonyGroup//XWork Validator 1.0.2//EN"

       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

可以用firefox打开上面的dtd文件。查看里面的结构。

比如:对username字段进行校验,其xml文件里的格式如下:

       "-//OpenSymphony Group//XWork Validator1.0.2//EN"

       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

 

   

   

      

      

           true

          

           username should not be blank!

      

      

      

      

           6

          

           10

           username should be between ${minLength} and ${maxLength}

      

   

   

   

   

           password should not be blank!

      

      

      

           6

           10

           password should be between ${minLength} and ${maxLength}

      

   

   

   

      

           repassword should not be blank!

      

      

      

           6

           10

           repassword should be between ${minLength} and ${maxLength}

       

   

   

   

      

           1

           150

           age should be between ${min} and ${max}

      

   

   

   

      

           birthday should not be blank!

      

       

           2001-01-01

           2003-12-31

           birthday should be between ${min} and ${max}

      

   

   

   

      

            graduation should not be blank!

      

      

           2005-01-01

           2007-12-31

           graduation should be between ${min} and ${max}

      

   

 

总结:用上述xml方式对表单中的字段进行验证与在actoin类中重写validate()验证,是重复的。因此,在开发项目中,要么采用xml文件的方式进行验证,要么在处理类中使用重写validate()的方式去进行验证。否则容易产生混消。

当校验不是很复杂时,尽量使用xml文件的方式去校验;当校验比较复杂时,可以使用validate()方法去校验。无论如何,提交表单时,都会先执行validate()方法,再执行execute()方法。针对同一个字段,如果同时有xml文件验证,也有validate()方法验证时,会先输出xml文件中的验证信息,后输出validate()中的验证信息。

 

在validate()方法中。可以将错误信息放在fieldError对象中,也可以放在actionError对象中。至于应该放在哪个级别的对象中,看个人喜好。

 

struts2同样支持客户端校验:

1、 一定不能在form表单中的属性设置theme=”simple”.[基于strutsw2标签]

2、 将form的validate属性设置为tru。[基于strutsw2标签]

3、 最好不要使用struts2给我们提供的客户端校验方式。

 

非字段校验:拿谁来验证,我去验证谁!

 

   

       username

       username should not be blank!

   

   

       username

       6

       10

       username should be between ${minLength} and ${maxLength}

   

总结:究竟采用字段校验器还是非字段校验器,大家认为,还是字段校验器更直观,也因此大多采用字段校验器的形式去进行表单验证。二者其一,看个人喜好。当然也可以两者同时存在于文件中。

 

 

1. 真正存放fieldError级别错误信息的对象是LinkedHashMap,也就是map的一个实现。

 

2. 该LinkedHashMap的key是String类型的,value是ArrayList类型的

 

3. 对于ActionError级别的错误信息,实际上是放置在ArrayList中的