Zatem zaczynamy:
*Dodaj framework JavaServer Faces i kliknij finish.
Po stworzeniu przykładowej aplikacji ServletFaces otrzymujemy następującą strukurę katalogów:
Gdy uruchomimy aplikację wyświetli się nam w oknie przeglądarki adres:
Teraz spróbujemy dodać stronę jsp np. page2.jsp. Struktura katalogów powinna wyglądać tak:
Uzupełnij stronę tak abyś miał pewność, że znajdujesz się na stronie page2.jsp. Ja uzupełniłem ją w następujący sposób:
Teraz będziemy starali się poprzez adres w przeglądarce wyświetlić treść nowo utworzonej strony. Pierwszym pomysłem byłoby wpisanie następującego adresu:
Jeżeli odwiedzasz ten artykuł to z pewnością wiesz jaki będzie rezultat. Pytanie tylko dlaczego?
org.apache.jasper.JasperException: java.lang.RuntimeException: Cannot find FacesContext
W skrócie:
Powodem tego jest sposób wdrażania aplikacji internetowych, które są tak naprawdę procesem żmudnym. Trzeba utworzyć odpowiednią strukturę katalogów (patrz powyżej) oraz odpowiednio skonfigurować pliki (*.xml) aplikacji. Za dynamiczną treść prezentowaną na stronach jsp są odpowiedzialne Servlety. Servlety to klasy java, które przetwarzają zlecenia klientów.
Servlety konfiguruje się w plikach xml podając dane potrzebne do uruchomienia. Zajrzyj do pliku web.xml. W tym pliku znajduje się odpowiedź dlaczego wcześniejsze http://localhost:8080/ServletFaces/page2.jsp wywołało wyjątek.
Oto odpowiedź:
Widzimy jak się prezentuje nazwa servletu: Faces Servlet oraz, która klasa implementuje metody inicjalizujące, wykonujące żądania oraz "niszczące" dany servlet:
javax.faces.webapp.FacesServlet.
Podświetlony na żółto znacznik <servlet-mapping/> odpowiada za "uruchamianie" i wykonywanie kodu FacesServlet.
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Powyższy kod mówi nam: że Faces Servlet będzie uruchamiany w przeglądarce jeśli wpiszemy adres zawierający url-pattern. Na przykład aby wyświetlić wcześniejszą stronę page2.jsp musimy wpisać następujący adres:
Teraz skoro rozwiązaliśmy początkowy problem dodamy nową regułę url-pattern, która nieco zmieni sposób w jaki będziemy mogli uruchomić serwlet. Do pliku web.xml w miejscu zakończenia poprzedniego tagu servlet-mapping dodaj następujący kod:
Teraz zamiast pisać:
Możemy alternatywnie wywołać stronę jsp w poniższy sposób:
Dziękuję za uwagę :-)
Benone!
1 comments:
Mi się bardzo podoba Twój cytat na nagłówku:O zgrozo ile to człowiek musi poświęcić czasu na naukę nowej technologii :)
Do tego samego doszłam wczoraj z kolegą.
A artykuł podoba mi się, choć to w sumie jakiś mały kroczek do pisania servletów.
Post a Comment