Java Server Faces web uygulamalarının arayüzünü inşa etmek için oluşturulan, yeni nesil
web uygulama çatısıdır.
Temel Özellikleri
- Managed Beans Yönetimi
- Bütünleşik Ajax Desteği Kullanımı
- Bileşen Tabanlı (Component Oriented)
- Gelişmiş EL (Expression Language) Desteği
- Olaya Dayalı (Event Driven)
- Durum Yönetimi(State management)
- 3. Parti JSF Bileşenleri Kullanımı
Şimdi bu adımları sıralayalım;
1.Create or Restore View
2.Apply Values from User
3.Ensure Values are Valid
4.Update Model with Valid Values
5.Fetch a New View, If Necessary
6.Render View
1. Create or Restore View (Görünümü oluştur)
Bu aşama kullanıcını sayfada bir butonu ya da linki tıkladığı aşamadır.
2. Apply Values from User (Kullanıcıdan verileri al)
Bu aşamada ekrandaki değerler alınır ve bileşenler içerisinde saklanır.
3. Ensure Values are Valid – Process validations (Verilerin doğruluğunu kontrol et)
Kullanıcının girdiği değerlerin kritelerle uyup uymadığı, zorunlu alanların doldurup doldurulmadığı vb diğer işlemler bu fazda kontrol edilir, eğer herşey uygunsa bir sonraki faza geçilir, yoksa ilk faza dönülür. Mesela ilgili alana sadece sayı girilmesini istemişiz ama kullanıcı harf yazmış ya da ilgili alanı zorunlu yapmışız ama kullanıcı herhangi bir değer vermeden formu göndermiş gibi…
4. Update Model with Valid Values (Verilerle modeli güncelleştir)
Verilerin doğruluğunun bir önceki fazda kontrolünden sonra sıra artık modeli (bean, entity vb.) güncelleştirir yani formdan elde edilen verilen yapışmasını sağlar. Formdaki “name” alanına girilmiş veri “Student” sınıfının “name” alanına yapışması gibi…
5. Fetch a New View, If Necessary (Gerekliyse yeni bir görünüm oluştur)
Eğer formdaki işlemler sonucu yeni bir görünüm yaratmak istiyorsak onu oluşturur.
6. Render View (Görünümü İşle)
Son olarak web sayfasını kullanıcıya tekrardan göstermek için bu faz çalışır ve görünüm işlenmiş olur.
Managed Beans (Backing Bean) yönetimi
JSF ile ortaya çıkan bir kavramdır.Yaşam evreleri JSF IOC(Inversion Of Control) konteyner tarafından yönetilen JavaBean sınıfıdır.JSF ile hazırlanan bir sayfada birden çok Managed Bean kullanılmaktadır.JSF 2.0 ile birlikte sınıfların başında @MangedBean annotationını kullanarak ilgili beane erişim sağlanır.Daha eski versiyonlarında faces-config.xml dosyasında tanımlama yapmak gerekir.
Managed-bean-scope : faces-config.xml’e eklediğiniz bean’in ne kadar süreyle bellekte tutulacağını gösterir. 4 adet parametre alır.
a-request : Sayfa her çağırıldığında oluşturulur ve sayfa gösterimi ile sonlanır. Bir çok sayfada bu scope’u kullanırız çünkü bellekte request-response süresince kalacağı için belleğe fazla bir yük getirmez.
b-session : Kullanıcı uygulamamıza ilk eriştiğinde bir oturum açılır ve bu oturum kullanıcı tarayıcısını kapatana kadar devam eder. Bu süre içerisinde saklamak istediğimiz Bean’leri session scope’ta tutarız. Örneğin bir kullanıcı sisteme kendi hesabı (account) ile girdiğinde tarayıcısını kapatana kadar uygulamada takip edilmelidir. Bu tür işlemleri session scope’ta saklarız. Ancak unutulmamalıdır ki bu işlemin bize belli bir bellek maliyeti olacaktır. O nedenle sadece gerekli olması durumunda bu scope’u kullanmalıyız.
c-application : Bu scope uygulama başlatıldığında açılır ve uygulamayı durdurana kadar bellekte yer işgal eder. Burada aktif kullanıcı sayısını ya da kalıcı bir bağlantı nesnesini tutabilir. Uygulama başlarken veritabani bağlantısını yaratıp application’da saklarız ve gerektiğinde her yerden erişip çağırabiliriz.
d-none : Bu bean’in hiçbir scope’a ait olmadığını gösterir. Henüz hiçbir yerde kullanmadım.
http://ibrahimcatakli.com/2012/08/06/jsf/#more-25
http://jsf.kodcu.com/tr/blog
http://www.sukrucakmak.com/jsf-life-cycle/
http://www.herturbilgi.com/2013/01/jsf-java-server-faces-1/