2012-02-01 7 views
0

Я хочу динамически проверять значения, используя специальный валидатор, который можно использовать с несколькими компонентами. Пользовательский валидатор получает эти значения из разных ManagedBeans в зависимости от его использования.Динамически активировать ManagedBeans в пользовательском JSF-валидаторе

Как определить, из какого ManagedBean извлекается значение? Поэтому я могу получить его, проверить его и вернуть обратно в ManagedBean.

Мои валидатора:

@FacesValidator(value = "valid") 
public class DateValidator implements Validator { 

    @Override 
    public void validate(FacesContext context, UIComponent component, 
      Object value) throws ValidatorException { 
     // Bean bean = ? 
    } 
} 
+0

Это действительно странный вариант использования для 'Validator'. Вы действительно не нуждаетесь в «Конвертере»? «Валидатор» не должен манипулировать/конвертировать данные, а просто проверять/проверять данные и расклеивать их. – BalusC

+0

Прошу прощения за описание. Я не буду манипулировать данными в валидаторе. Я просто хочу получить ManagedBean, в котором переданное значение компонента позже будет сохранено, потому что в этом Bean есть некоторые данные, которые мне нужны для проверки. – buderu

ответ

0

Я не думаю, что это хороший подход, как в фазовой модели проверки еще не обновляется, что вы получаете, просто введите значение с точки зрения. Интересно, зачем вам нужен экземпляр bean. Если ваша проверка зависит от другого компонента, вы можете обратиться к link @ SO и Validator for multiple fields.

Как вы сочтете, вам нужно проверить его и вернуть обратно, вот почему фаза проверки - это все, проверьте его в своем валидаторе, и если он сработает, он не будет передан управляемому компоненту.

Посмотрите на эту ссылку для JSF жизненного цикла JSF Lifecycle

Надежда это помогает !!!

Смежные вопросы