我正在使用Struts2中的注释进行验证,很惊讶地发现注释没有LongRangeFieldValidator
,其中使用xml完成的验证确实具有LongRangeFieldValidator
我尝试了使用批注获取LongRangeFieldValidor
的不同方法。LongRangeFieldValidator
。它显示了一个错误,因为它实际上并不存在,并且com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator
无法转换为Annotation
类型。这很明显,所以我切换到下一个。
我使用了IntRangeFieldValidator
。我可以使用它,因为它无法进行类型转换。我认为这应该有效,因为文档说它适用于数字类型。DoubleRangeFieldValidator
这个也验证(并且应该验证)非整数值,因此我不得不删除它。
最后,我不得不将我的long
字段转换为String
,并且不得不使用RegexFieldValidator
。
我的问题是,为什么包LongRangeFieldValidator
中没有com.opensymphony.xwork2.validator.annotations
,获得它的最佳实践是什么?
最佳答案
看来他们忘记了将此注释添加到核心软件包中。可能只是一个错误,但是有解决方法。使用custom validator批注
@CustomValidator(type ="long", fieldName = "myField")
在registered validators下,您可以找到验证器的名称
long
。