JavaServer Faces

Wstęp
Główne koncepcje
Zasadniczym powodem powstania JSF była chęć uproszczenia tworzenia warstwy prezentacyjnej aplikacji J2EE tak, żeby twórca aplikacji mógł myśleć o tym jakie tworzyć formularze i jak powinna przebiegać nawigacja w aplikacji a nie o tym czy jakiś obiekt został wrzucony do requestu czy do sesji, czy w danym momencie już powinien być dostępny czy jeszcze nie, czy kolejny raz trzeba w HTML'u pisać jakiś standardowy element itd. JSF jest w pewnym sensie dodatkową warstwą nad serwletami i JSP.

Kolejnym kluczowym celem było uproszczenie stadardowych czynności takich jak projektowanie formularzy czy określanie nawigacji między elementami aplikacji. Cel ten próbowano zrealizować poprzez stworzenie narzędzi do graficznego tworzenia formularzy (WYSIWYG) i łączenia ich z obiektami Javy czy też narzędzi do tworzenia powiązań pomiędzy stronami JSF.

Następnym pomysłem było utworzenie biblioteki standardowych komponentów, które dzięki utworzeniu biblioteki tagów mogą po umieszczeniu w kodzie stron JSF generować często używane elementy stron HTML (ale nie tylko, równie dobrze mogą być tworzone np. strony WML). Oczywiście istnieje wsparcie dla tworzenia własnych komponentów, które dzięki temu mogą być wielokrotnie wykorzystywane.

Standardowe pomysły - JSF przyjęło również wiele standardowych koncepcji, które pojawiały się wczesniej w wielu rozwiązaniach, np. ścisłe oddzielenie warstwy prezentacji od warstwy logiki (Managed Beans), możliwość tworzenia szblonów layoutu aplikacji (mechanizm Tiles przejęty bezpośrednio z framework'u Struts), łatwe tworzenie wersji językowych aplikacji i przechowywanie komunikatów w zewnętrznych plikach (messsage bundles), wsparcie dla walidacji danych itd.

Wymagane biblioteki
Do budowy i uruchamiania aplikacji JSF potrzebne są następujące biblioteki: W zależności od serwera aplikacji część tych bibliotek może być juz dostępna w standardowej instalacji serwera, w innych przypadkach może być wymagane dołączenie ich osobno. W zależności od preferencji można wymienione biblioteki dołączyć do aplikacji lub umieścić w odpowiednich katalogach przewidzianych dla bibliotek zewnętrznych w serwerze aplikacji.

Współpraca z JOnAS'em
Serwer aplikacji JOnAS jest zgodny ze standardem J2EE 1.4 zatem uruchamianie aplikacji JSF nie sprawia specjalnych problemów. Po zainstalowaniu serwera aplikacji, można do katalogu $JONAS_ROOT/lib/ext dograć biblioteki, o których mowa w poprzednim akapicie. Zbudowaną aplikację osadza się na serwerze w standardowy sposób, np. poprzez wgranie jej do katalogu $JONAS_ROOT/webapps i dodanie aplikacji komendą administracyjną jonas admin -a jsf-app.war.

Przykładowa aplikacja
Przykładową aplikację należy rozpakować i zbudować poleceniem ant. Aplikacja wgra zbudowany plik jsf-app.war do katalogu $JONAS_ROOT/webapps aplikację należy dodać komendą administracyjną jonas admin -a jsf-app.war.
Nie jest wymagane dodawanie bibliotek do serwera aplikacji, są one dołączane do aplikacji w trakcie budowy (położenie bibliotek jest określane w pliku build.properties we właściwości external.libs).
Aplikacja powinna być dostępna pod http://127.0.0.1:9000/jsf-app/

JavaServer Faces