Question

I can validate the length of a String with an annotation like:

@Length(max = 255)

But what if I want to verifiy that the length is either 5 or 9? Can this be done with an annotation?

Was it helpful?

Solution

Here's the documentation for implementing custom constraint.

It's failry simple:

  1. You define your own annotation, with the appropriate attributes
  2. You define the class which will perform the validation
  3. You define validation messages
  4. You use the annotation

So perhaps your annotation might look like:

@Constraint(validatedBy=YourChecker.class)
//other annotations
public @interface AllowedValues {
    int[] value();
}

OTHER TIPS

Try @Pattern(regex=".{5}|.{9}") (change the dot to another character class if you don't want to match everything.

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