问题描述
大家好, 关于struts2的类型转换,本人有个疑问。 比如我的action中有一个Integer类型的number,且增加了不能为空的校验器,提示信息为:number can not be null. 在表单中,我故意在number表单域输入abc,那么在提交表单后,首先会发生转换,转换失败后,会把转换失败信息加到fieldError里面,并且把number字段设置成null值,再进入验证,这时不能为空的校验器肯定不能通过,最终进入input指定的页面,并提示错误信息number must be numeric.(在资源文件中增加了xwork.default.invalid.fieldvalue={0} must be numeric.)number can not be null.我想问的是有没有什么方法,可以在类型转换失败后,不进入字段验证,而是直接返回input,这样给用户的感觉会更好。
解决方案
不可以,类型转换之后肯定要进行输入校验。要不然struts2对那些类型转换不成功的字段设置默认值不就没有意义了。自己的一点看法,仅供参考!
解决方案二:
首先更正楼上的说法,配置文件的xml校验同样可是实现前台校验的功能,说明你对struts2的校验用的还少 难道你说的不能用短路校验来实现吗?既然是对一个字段的校验,完全可以用短路校验来实现。
解决方案三:
验证一个字段是不是null的这种验证最好方正前台做,可以减轻服务器压力的,其实是不是数字也能放在前台做如下引用字段.value.match(/^[0-9]d*$/)
解决方案四:
你为什么不在前台做一下类型的检验呢
时间: 2024-09-30 23:41:04