Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
RegexpValidator and null
I need i password with the constrains of four digits.
So i create a passwordFields an i add aRegexpValidator with the regular expression "\\d{4}"
PasswordField pass = new PasswordField("usuario");
pass.addValidator(new RegexpValidator("\\d{4}", "La contraseña debe tener cuatro caractéres numéricos"));
But if i left the field empty the error message doesn't appear (the field pass the validation).
It fails if i put "1" , "abc", ...
Musn't it null fail the validation? Why not in this case?
IIRC you need to call setRequired(true). Empty value is treated different than invalid value.
Hello José,
as docimentation states for RegexpValidator: "An empty string or a null is always accepted - use the required flag on fields or a separate validator (or override isValidValue(String)) to fail on empty values."
https://vaadin.com/api/com/vaadin/data/validator/RegexpValidator.html
To overcome it you can apply to your field also NullValidator() or/and StringLenghtValidator ;
https://vaadin.com/api/7.6.4/com/vaadin/data/validator/NullValidator.html
Here is exaple of different validation usage:
https://dev.vaadin.com/svn/doc/book-examples/trunk/src/com/vaadin/book/examples/component/properties/ValidationExample.java
Another approach is to set setRequired(true);
Hopefully, it helps : )
Ok thanks so much, Johannes and Anastasia
three alternatives:
- add NullValidator
- override the isValidValue
- setRequired (true)
PD: i remind me to look api, docs and book examples before ask!!! :C