JSF Ders01 - JSF' ye Giriş


   Java Server Faces (JSF), java tabanlı web uygulama frameworküdür.

JSF' nin özellikleri aşağıda listelenmiştir.
  • MVC (Model View Controller) yapısına uygun olarak geliştirilmiştir.
  • Ajax'ı destekler.
  • Event Handler yani olay işleyicidir.
  • GUI (Graphical User Interface) frameworküdür.
  • Birçok JSF bileşeni mevcuttur.(Ice Faces, Rich Faces, Prime Faces vs.)
  • Component oriented yani öğe tabanlıdır. Bu yüzden hızlı bir şekilde web uygulamaları yazılabilir.
  • Template Layout (Şablon Planı)'a sahiptir. 
  • Implicit Navigation (Kapalı Navigasyon)'a sahiptir.
Bir JSF  projesi şu dosyalardan oluşmaktadır.
  • WebContent/WEB-INF içinde web.xml dosyası
  • WebContent/WEB-INF içinde face-config.xml dosyası
  • WebContent içinde .xhtml dosyaları
  • Java Resources/src içinde java dosyaları
Örnek bir web.xml dosyasına yakından bakılırsa;

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JSF02</display-name>
  
  <welcome-file-list>
    <welcome-file>index.jsf</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
 <param-name>javax.faces.PROJECT_STAGE</param-name>
 <param-value>Development</param-value>
  </context-param>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
</web-app>

Burada yer alan ;
  • *.jsf değeri JSF dosyalarının uzantısını belirtir.
  • java.faces.PROJECT_STAGE'a verilen Development değeri ekstra debug desteği sağlar.
  • javax.faces.STATE_SAVING_METHOD statein nereye kaydedileceğini belirtir. client veya server olabilir.
Bir faces-config.xml dosyasında ise, Bean tanımlamaları, explicit navagiation kuralları yer alabilir.

WebContent içinde yer alan .xhtml dosyaları ise bilinen html dosyalarına benzerlik gösterir.Yer alan farklılıklar aşağıda belirtilmiştir.
  • Html etiketine ekstra şu tanımlama eklenmelidir. xmlns:h="http:xmlns.jcp.org/jsf/html"
  • Etiketlerin başına "h:" kullanılır. Örneğin "head" yerine "h:head", "body" yerine "h:body" gibi.
  • Form elemanlarında da bazı farklılıklar vardır. Örneğin "input type=text" yerine "h:inputText" gibi.
  • .xhtml dosyalarında tag isimleri, attribute isimleri vs. küçük harfli olmalıdır.

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)