大家好,
关于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对那些类型转换不成功的字段设置默认值不就没有意义了。
自己的一点看法,仅供参考!
你为什么不在前台做一下类型的检验呢
验证一个字段是不是null的这种验证最好方正前台做,可以减轻服务器压力的,其实是不是数字也能放在前台做如下
[quote]字段.value.match(/^[0-9]\d*$/)[/quote]
首先更正楼上的说法,配置文件的xml校验同样可是实现前台校验的功能,说明你对struts2的校验用的还少
难道你说的不能用短路校验来实现吗?既然是对一个字段的校验,完全可以用短路校验来实现。