2016-05-27 3 views
0

До сих пор мне приходилось создавать только один java customValidator в моих приложениях. В текущем проекте я теперь столкнулся с необходимостью иметь несколько customValidators, которые мне нужно зарегистрировать в приложении.Xpages xp: customValidator: мне нужно создать отдельный компонент для каждого customValidator?

Поскольку у меня может быть только один метод validate внутри моего компонента, возникает вопрос, нужно ли мне создавать отдельные объекты для каждого параметра проверки. Или есть способ иметь один общий компонент, содержащий все необходимые валидаторы? Но тогда, как это будет выглядеть?

ответ

1

Если вы работаете с управляемым компонентом, вы можете определить свои собственные методы для вашей проверки. Метод должен иметь три параметра и вернуть пустоты:

public void validateDemo(FacesContext fc, UIComponent uiCmp, Object toValidate){ 
    throw new ValidationException(new FacesMessage("Validation error.")); 
} 

В XPage теперь вы можете использовать этот метод в UIComponent:

<xp:inputText 
    id="myText" 
    validator="#{myBean.validateDemo}" /> 

Вы можете иметь много методов проверки достоверности данных, как вы хотите.

+0

Спасибо, как всегда :-). Просто, чтобы понять это: в этом случае я бы зарегистрировал это как управляемый компонент вместо настраиваемого валидатора в моих face-config? Причина, если я делаю это с помощью валидатора, мне предлагается внедрить метод «validate». Насколько я понимаю, я не могу объединить метод bean с другим стандартным валидатором, или я могу? –