Pregunta

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?

¿Fue útil?

Solución

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top