Talk is cheap show me the code. L.T.

JSF LifeCycle – JSF Yaşam Döngüsü

Özellikle üzerinde durduğum bir konu. Çünkü burayı iyi öğrenemeyen bir Java web developer, ilerde sıkça patlayacak, projenin nerede tıkandığını anlayamayacaktır. So please focus on !

Jsf, yaşam döngüsü, aslında tıpkı Jsp gibi http request leri alır ve cevabı html formatında geri döndürür. Ancak daha spesifik bir yapıya sahip olduğu için 6 faza ayırmayı öngörmüş Oracle. Biz bu fazlarda, converter, validator, action, actionListener, getter-setter ların nezaman devreye girdiğini nezaman es geçildiğini irdeliyeceğiz.

[singlepic id=10 w=520 h=340 float=]

Bu fazların tamamı server tabanlıdır. Yani javascript işlemlerinin çalışma önceliğinin bu fazlarla ilgisi yok. Onlar hep ilk gerçekleşenler olacaktır :)

Kullanıcı, web üzerinde sayfa görüntülerken, iki tipte görüntüleme yapar. İnitial request yada postback. Eğer sayfayı ilk kez görüntülüyorsanız, initial request yapmış olursunuz. İlk request’ten sonra, server tarafında işlem yapıldıktan sonraki tüm görüntüleme işlemleri, postback olarak isimlendirilir. İnitial request’te sadece Restore View ve Render Response fazları çalışır. Çünkü kullanıcı tarafından gönderilen input yada handle edilmesi gereken action yoktur. Ancak veri girilirse, JSF bunu algılayacak ve tüm fazları (eğer gerekliyse) çalıştıracaktır.

Herhangi bir sayfa eğer render olacaksa, JSF,  sayfaya ait tüm bilgileri kendi yarattığı FacesContext instance içersinde saklar. Butonların action’larını, validator, converter’ları….Bu instance üzerinde lifecycle ile ilgii birçok işlem yapabilirsiz. Örneğin, eğer siz bean içersinde, FacesContext.renderResponse gibi bir ifade kullanırsanız, JSF direk Render Response fazına atlar. Yada ekranda sadece belli formların update olmasını da sağlayabilir, komponentlere, bean tarafında da yeni attribute’ler ekleyebilirsiniz.

Uygulamanızda, fazların tamamlanmadan, başka sayfaya direkt yönlenmesini istiyorsanız, yine bu instance üzerinden fazların geri kalanının da çalışmasını engelleyebilirsiniz. (yukarıdaki şekilde de gösterildiği gibi.) Mesela converter da öyle bir hata yakaladınız ki action’ların dahi çalışmasını istemiyorsunuz. Bu durumda FacesContext.responseComplete() yardımınıza koşar.

1-Restore View Phase

2-Apply Request Values Phase

3-Process Validations Phase

4-Update Model Values Phase

5-Invoke Application Phase

6-Render Response Phase

Kaynak : oracle.com


( 3150 )

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>