Class JsfLabelMessageInterpolator

  • All Implemented Interfaces:

    public class JsfLabelMessageInterpolator
    extends Object
    implements MessageInterpolator

    Unlike native Faces validation error messages, in a bean validation message by default the label of the component where a validation constraint violation originated from can not be displayed in the middle of a message. Using the jakarta.faces.validator.BeanValidator.MESSAGE bundle key such label can be put in front or behind the message, but that's it. With this JsfLabelMessageInterpolator a label can appear in the middle of a message, by using the special placeholder {jsf.label} in bean validation messages.

    Note that Bean Validation is not only called from within Faces, and as such Faces might not be available. If Faces is not available occurrences of {jsf.label} will be replaced by an empty string. The user should take care that messages are compatible with both situations if needed.

    This message interpolator is not needed for putting a component label before or after a bean validation message. That functionality is already provided by Faces itself via the jakarta.faces.validator.BeanValidator.MESSAGE key in any resource bundle known to Faces.


    Create a /META-INF/validation.xml file in WAR with the following contents:

     <?xml version="1.0" encoding="UTF-8"?>


    As an example, the customization of @Size in

     jakarta.validation.constraints.Size.message = The size of {jsf.label} must be between {min} and {max} characters
    Arjan Tijms