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:
- Jakarta Standard - zawiera jstl.jar
i standard.jar
- JavaServer Faces - implementacja referencyjna
zawiera jsf-api.jar, jsf-impl.jar oraz biblioteki commons*.jar
- standardowe biblioteki obsługujące serwlety, specyficzne dla serwera aplikacji
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