문제

I was working on validation using annotation in Struts2 and i was quite surprised to see that the annotations does not have a LongRangeFieldValidator where as the validations done using xml does have a LongRangeFieldValidator

I tried different ways to get the LongRangeFieldValidor using annotations.

  1. LongRangeFieldValidator. It showed an error because it doesn't actually exists and com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator cannot be converted to an Annotation type. This was quite obvious so i switched to next.

  2. I used IntRangeFieldValidator. I could quite use it because it was unable to do a typecasting. I thought this should have worked because docs says it is for numeric types.

  3. DoubleRangeFieldValidator This one also validates (and it should) non-integer values so i had to drop this.

  4. Finally I had to convert my long field to a String and had to use RegexFieldValidator.

My question is why there isn't a LongRangeFieldValidator in the package com.opensymphony.xwork2.validator.annotations and what are the best practices to obtain it?

도움이 되었습니까?

해결책

It seems they forgot to add this annotation to the core package. Just a mistake may be or so, but there is the workaround. Use a custom validator annotation

@CustomValidator(type ="long", fieldName = "myField") 

under registered validators you can find the name of the validator long.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top