There are two types of validations namely:
Declarative Validations: The validations that are fired using JSF standard validators or Bean validators fall under declarative type.
Imperative validation: The standard validation messages would not be sufficient in all the cases and sometimes may require complex validations that are declared by the user overriding the standard validations and these are called Imperative validations.
JSF validation example: https://www.journaldev.com/7035/jsf-validation-example-tutorial-validator-tag-custom-validator