JSF: Dostęp do Bean z Validatora przez pole
Mam walidator JSF, który sprawdza, czy ciąg numeru kontenera jest zgodny zISO-6346 specjalizacja.
Działa dobrze, jednak muszę dodać przetwarzanie warunkowe w oparciu o inne wartości w Bean, z której pochodzi numer kontenera. Ta fasola może być kilku różnych typów.
Czy jest jakiś sposób na uzyskanie dostępu do Bean w walidatorze i wykonanie na nim operacji? Idealnie chciałbym zachować go jako walidatora, jednak jeśli nie ma rozwiązania, będę musiał zaimplementować logikę w Beanie, zanim się utrzyma.
Myślę o czymś w rodzaju:
public class ContainerNumberValidator implements javax.faces.validator.Validator {
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
Object bean = UIComponent.getMyBeanSomehowThroughAMagicMethod();
if(bean instanceof BeanA) {
//do this
} else if(bean instanceof BeanB) {
//do that
}
}
AKTUALIZACJA: Pod wieloma względami jest to podobny problem do walidacji wielu pól w tym samym czasie.Ten kod pomocne jest BalusC.
Bardzo ceniony.
RE.