Ответ 1
Есть несколько способов:
-
Самый простой, просто установить атрибут
validatorMessage
.<h:inputText ... validatorMessage="Please enter a number between 0 and 42"> <f:validateLongRange minimum="0" maximum="42" /> </h:inputText>
Однако это также используется при использовании других валидаторов. Он переопределит все сообщения других валидаторов. Не уверен, что это создаст проблему. Если это так, отправляйтесь в следующие пути.
-
Создайте пользовательский валидатор, который расширяет стандартный валидатор, такой как
LongRangeValidator
в вашем случае, перехватите исключениеValidatorException
и повторно отправьте его с нужным настраиваемым сообщением. Например<h:inputText ...> <f:validator validatorId="myLongRangeValidator" /> <f:attribute name="longRangeValidatorMessage" value="Please enter a number between 0 and 42" /> </h:inputText>
с
public class MyLongRangeValidator extends LongRangeValidator { public void validate(FacesContext context, UIComponent component, Object convertedValue) throws ValidatorException { setMinimum(0); // If necessary, obtain as custom attribute as well. setMaximum(42); // If necessary, obtain as custom attribute as well. try { super.validate(context, component, convertedValue); } catch (ValidatorException e) { String message = (String) component.getAttributes().get("longRangeValidatorMessage"); throw new ValidatorException(new FacesMessage(message)); } } }
-
Используйте OmniFaces
<o:validator>
validator<o:validator>
который позволяет установить другое сообщение валидатора для каждого валидатора:<h:inputText ...> <o:validator validatorId="javax.faces.Required" message="Please fill out this field" /> <o:validator validatorId="javax.faces.LongRange" minimum="0" maximum="42" message="Please enter a number between 0 and 42" /> </h:inputText>
Смотрите также:
- Измените сообщение по умолчанию "Ошибка проверки: требуется значение" на "Требуется значение"
- Как настроить сообщение преобразования JSF "должно быть числом, состоящим из одной или нескольких цифр"?
- Интернационализация в JSF, когда использовать пакет сообщений и пакет ресурсов?
- Сообщения пакета ресурсов JSF-конвертера