środa, listopada 5

JSF po raz pierwszy

witam; udało się uruchomić aplikację jsf + maven + tomcat; budując aplikacje standalone i pracując z spring i paroma innymi framework'ami nadeszła pora na poznanie technologii webowych;

od czego by ty wystartować...
instalacja frameworków:
  • maven - najlepiej jest to opisane na oficjalnej stronie projektu
  • tomcat - tu podobnie jak wcześniej oficjalna strona jest jednym z najlepszych źródeł informacji

no to startujemy; tworzymy projekt z archetypu softeu-archetype-jsf lekko, modyfikowałem go do postaci:



by uruchomić bardzo prosty przykład należy stworzyć kilka plików; w niniejszym poście opiszę tylko znaczące elementy plików;

web.xml, zwany też plikiem konfiguracyjnym vel deskryptor wdrożenia:

<web-app>
<servlet>
  <servlet-name>Serwlet JavaServer Faces</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>Serwlet JavaServer Faces</servlet-name>
  <url-pattern>*.faces</url-pattern>
</servlet-mapping>

<listener>
  <listener-class>com.sun.faces.config.GlassFishConfigureListener</listener-class>
</listener>

<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>


jednym z ciekawszych elementów w pliku jest servlet-mapping, zawiera on informację o mapowaniu adresów, strony JSF są przetwarzane przez specjalny serwlet, aby zapewnić poprawne aktywowanie tego serwletu w momencie żądania strony JSF; tomcat musi wiedzieć które to strony są JSF, w konfigruacji adresy będą się kończyły rozszerzeniem .faces;
parametr welcome-file-list zawiera informacje o tym jaka strona zostanie uruchomiona zaraz po tym jak zostanie wpisany adres projektu do przeglądarki;


plik faces-config.xml zawiera informacje konfiguracyjne dla części związanej z JSF;

<navigation-rule>
  <from-view-id>/index.jsp</from-view-id>
  <navigation-case>
    <from-outcome>login</from-outcome>
    <to-view-id>/login.jsp</to-view-id>
  </navigation-case>
</navigation-rule>

<managed-bean>
  <managed-bean-name>myClass</managed-bean-name>
  <managed-bean-class>pl.arekborek.MyClass</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
</managed-bean>


nic prostszego tag <navigation-rule> zawiera informacje na temat zasad nawigacji, czyli z jakiego widoku po spełnieniu warunku, gdzie zostanie przeniesiony użytkownik;
tag <managed-bean> zawiera informacje na temat beanów jakie będą widoczne w aplikacji; dla każdego trzeba określić zasięg, klasę oraz nazwę pod jaką będzie widziany; w JSF zdefiniowano następujące zasięgi widoczności request, session, application, none

pozostaje jeszcze kilka plików do opisania, ale zawartość ich nie jest zbyt interesująca; jeżeli kogoś interesował by cały działający przykład proszę się odezwać do mnie na mila;