在我的 struts2 应用程序中,我有一个名为 CarrierNo 的字段,它接受整数,当我将字符串放入其中时,会给出以下验证错误消息:
*Invalid field value for field "carrierNo".*
我可以像这样在属性文件中自定义此错误消息
invalid.fieldvalue.carrierNo=this field does not accept characters
但我不想为我的网络应用程序中的每个非字符串字段编写自定义消息,我想使其通用,我尝试了以下方法,但它不起作用
invalid.fieldvalue.%{getText(fieldName)}=this field does not accept characters
如果没有办法通用,请帮助我完全禁用此消息。
然后我将使用转换字段验证器以及我在属性文件中定义的单个消息。
所以我的请求是帮助我使这个 invalid.fieldvalue.carrierNo 一般类似这样的形式 invalid.fieldvalue.%{getText(fieldName)}
或禁用此错误消息的显示字段“CarrierNo”的字段值无效。
您可以创建自己的实现ConversionErrorInterceptor
它找出失败字段的类并获取您的自定义消息。
Edit:
请参阅源代码ConversionErrorInterceptor
。例如,您可以在自定义拦截器中执行类似的操作intercept
method
// get field by name from action
Field f = invocation.getAction().getClass().getDeclaredField(propertyName);
// get type of field
Class clz = f.getType();
String message = LocalizedTextUtil.findDefaultText(XWorkMessages.DEFAULT_INVALID_FIELDVALUE + "." + clz,
invocationContext.getLocale());
并在 messages.properties 文件中放入xwork.default.invalid.fieldvalue.int
, xwork.default.invalid.fieldvalue.float
, etc.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)