struts2类型转换失败后

大家好,

  关于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的校验用的还少
难道你说的不能用短路校验来实现吗?既然是对一个字段的校验,完全可以用短路校验来实现。