struts2 xml 校验 小记2

        相信很多的人都用过struts2的配置文件验证,说实话,这个服务端校验确实比较好,可以有效防止一些错误数据提交到数据库。这里要说的是当类型转换失败时,struts默认的提示信息就不那么友好了,所以我们需要重新为它添加国际化资源,即:

invalid.fieldvalue.model.serverId=设备ID必须为数值类型

前面这一串“invalid.fieldvalue”是固定的,后面的就是你的xml中指定的校验字段名称,我的校验xml是:

 
      
         true -->
          
      
      
         1 -->
         9999999 -->
          -->
      -->
 

 加上以上友好的国家化资源信息后,当转型失败后,后台返回的错误信息就是 "设备ID必须为数值类型," 加上 “messages.validate.server.serverId.requied” 对应的国家化资源信息了;嗯???

等等,什么情况?信息提示是没有问题了,但是进入了第一个验证了,是不能为空的验证。查看strut-default.xml发现struts框架本身的机制就是,先转型,转型失败后加载错误信息,然后继续验证。

这里问题就来了,我不想转型失败后还傻不拉几的去验证,有没有可能转型失败后不去验证呢?不可以,这是struts的机制决定的。

所以我想到了在xml中接收转型失败后的错误信息,并给出相应的例子提示信息,即:

 
 	
  		
 	
       
           true 
            
        -->
        
            1 
           9999999
            
      
 -->

 国家化资源信息中加入:

messages.numerical.examples=如:0,11,202

你可能感兴趣的:(struts2,xml校验)