public class JsfLabelMessageInterpolator extends Object implements MessageInterpolator
Unlike native JSF 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
javax.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 JSF, and as such JSF might not be available. If JSF
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 JSF itself via the
javax.faces.validator.BeanValidator.MESSAGE
key in any resource bundle known to JSF.
Create a /META-INF/validation.xml
file in WAR with the following contents:
<?xml version="1.0" encoding="UTF-8"?> <validation-config xmlns="http://jboss.org/xml/ns/javax/validation/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd" > <message-interpolator>org.omnifaces.validator.JsfLabelMessageInterpolator</message-interpolator> </validation-config>
As an example, the customization of @Size
in ValidationMessages.properties
:
javax.validation.constraints.Size.message = The size of {jsf.label} must be between {min} and {max} characters
MessageInterpolator.Context
Constructor and Description |
---|
JsfLabelMessageInterpolator() |
Modifier and Type | Method and Description |
---|---|
String |
interpolate(String messageTemplate,
MessageInterpolator.Context context) |
String |
interpolate(String messageTemplate,
MessageInterpolator.Context context,
Locale locale) |
public String interpolate(String messageTemplate, MessageInterpolator.Context context)
interpolate
in interface MessageInterpolator
public String interpolate(String messageTemplate, MessageInterpolator.Context context, Locale locale)
interpolate
in interface MessageInterpolator
Copyright © 2012–2022 OmniFaces. All rights reserved.