Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top