NetBeans – nowy, lepszy edytor Dynamiczne ID w komponentach JSF
Jan 13

Od pewnego czasu wykonujemy w dwuosobowym zespole projekt w oparciu o Spring, Hibernate i JSF. Po drodze napotykamy dość często na różnego rodzaju problemy. Jednym z nich był dostęp z poziomu klasy implementującej jsf’owy interfejs Validator do zdefiniowanych w kontekście springowym beanów. Początkowo chciałem zadeklarować klasę walidatora w faces-config oraz w applicationContext ale tym sposobem tworzone są dwie niemające nic ze sobą wspólnego instancje interesującej mnie klasy. Drugie rozwiązanie okazało się już lepsze: standardowo korzystamy z org.springframework.web.jsf.DelegatingVariableResolver (którego deklarujemy w faces-config). W metodzie validate(..) natomiast korzystamy z takiej oto mniej więcej linijki w celu dostępu do beana:

ServiceLocator serviceLocator =
  (ServiceLocator) facesContext.getApplication().
    createValueBinding("#{serviceLocator}").getValue(facesContext);

Gdzie ServiceLocator to nazwa klasy a serviceLocator to nazwa springowego bean’a.

Bardzo możliwe, że da się to zrobić w bardziej elegancki sposób za pomocą biblioteki jsf-spring. Niestety projekt ten w tym momencie właściwie nie posiada dokumentacji, a ja nie posiadam czasu na wnioskowanie co i jak z api. Jeśli ktoś używał tego dzieła, proszę o jakieś info.

Podziel się z innymi:
  • Wykop
  • Digg
  • del.icio.us
  • StumbleUpon
  • Slashdot

One Response to “Dostęp do springowych beanów z poziomu klasy validatora JSF”

  1. Jacek Says:

    Obecnie używam RichFaces ze względu na łatwą i efektywną integrację ze SpringFramework. Szkielety RichFaces, Spring Framework i Hibernate Validator dają się idealnie integrować. W moim artykule opisałem sposób wykorzystania anotacji szkieletu Hibernate Validator w ramach stron jspx wykorzystujacych odpowiedni komponent RichFaces. Dodałem także aplikacje przykładową, może okaże się pomocna.

Leave a Reply

Security Code: