相信很多的人都用过struts2的配置文件验证,说实话,这个服务端校验确实比较好,可以有效防止一些错误数据提交到数据库。这里要说的是当类型转换失败时,struts默认的提示信息就不那么友好了,所以我们需要重新为它添加国际化资源,即:
invalid.fieldvalue.model.serverId=设备ID必须为数值类型
前面这一串“invalid.fieldvalue”是固定的,后面的就是你的xml中指定的校验字段名称,我的校验xml是:
<field name="model.serverId"> <field-validator type="required" short-circuit="true"> <param name="trim">true</param> --> <message key="messages.validate.server.serverId.requied"></message> </field-validator> <field-validator type="int" short-circuit="true"> <param name="min">1</param> --> <param name="max">9999999</param> --> <message key="messages.validate.server.serverId.range"></message> --> </field-validator> --> </field>
加上以上友好的国家化资源信息后,当转型失败后,后台返回的错误信息就是 "设备ID必须为数值类型," 加上 “messages.validate.server.serverId.requied” 对应的国家化资源信息了;嗯???
等等,什么情况?信息提示是没有问题了,但是进入了第一个验证了,是不能为空的验证。查看strut-default.xml发现struts框架本身的机制就是,先转型,转型失败后加载错误信息,然后继续验证。
这里问题就来了,我不想转型失败后还傻不拉几的去验证,有没有可能转型失败后不去验证呢?不可以,这是struts的机制决定的。
所以我想到了在xml中接收转型失败后的错误信息,并给出相应的例子提示信息,即:
<field name="model.serverId"> <field-validator type="conversion" short-circuit="true"> <message key="messages.numerical.examples"></message> </field-validator> <field-validator type="required" short-circuit="true"> <param name="trim">true</param> <message key="messages.validate.server.serverId.requied"></message> </field-validator> --> <field-validator type="int" short-circuit="true"> <param name="min">1</param> <param name="max">9999999</param> <message key="messages.validate.server.serverId.range"></message> </field-validator> </field> -->
国家化资源信息中加入:
messages.numerical.examples=如:0,11,202
相关推荐
Struts2输入校验总结 Struts2输入校验
Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex
struts2官方例子7-表单验证 xml形式的验证,主要是在相应的action类旁,新建一个对应的xml文件,进行验证
struts2输入校验 对指定方法进行输入校验
Struts2数据校验与国际化,有validate()方法校验,有validateXxx()方法校验,有配置文件校验;国际化:有英,香港,内地
NULL 博文链接:https://chaoyi.iteye.com/blog/2161948
开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2的校验有哪几种形式,具体的 校验格式,有多种,我就不一一介绍了,大家可以自已研究下。 把刚在LoginAction 里加的validate()去掉! 就OK了,...
struts.xml文件配置解释,对action配置进行说明
struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结
Struts2的校验框架 Struts2的校验框架 Struts2的校验框架
struts2文件上传,与xml校验 struts2文件校验可通过xml配对action的名称去校验属性的值。例如UploadAction.java中有一个book的属性。那么我可以定义一个UploadAction-validation.xml去校验这个book属性的内容。 xml的...
绝对的好东西 struts2.0中struts.xml配置文件详解
struts2校验器,字段,非字段校验器的语法规则……
本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。
Struts2中struts_xml的Action配置详解
Struts 2 输入校验
Dom4j解析struts2框架的struts.xml,自定义struts框架需要解析配置文件
Struts2输入校验,Struts2提供了功能强大的输入校验机制,通过Struts2内建的输入校验器,应用无需书写任何代码,即可完成大部分的校验功能,并可以同时完成客户端和服务器端的校验。