JSF ve Olay Yakalayıcılar

0
anonim
Bir süredir JSF olay yakalayıcılar (event listeners) ile ilgili aklıma takılan bir soru vardı. JSF gibi tamamen sunucu taraflı olduğu idda edilen bir teknolojide olay yakalama işlemi nasıl gerçekleşiyordu? Bu durum kullanıcı tarafın da javascript kullanımı gerektirir miydi? Eğer gerektiriyorsa o zaman nerde kaldı tamamen sunucu taraflı uygulama geliştirme konsepti?

Sonuç olarak bu soruya j2ee-tr listesinde Bora Güngören'in verdiği yanıtları derleyerek kısa bir bilgi notu oluşturdum. Faydalı olması dileğiyle...
Olay tetiklenmeleri istemci tarafında javascript veya ajax kullanılarak oluşturulabiliyor. Buradaki anahtar nokta ise bu bileşenlerin JavaScript işlemlerinin sunucu tarafı olay modelinde "değer değişikliği" gibi bir faaliyeti olmadığı.

JSF'de tum olay döngüsü sunucu tarafindaki görsel bilesen ağacinda olur. JavaScript ile olay döngüsü ile bağlantılı olabilecek tek sey bir HTTP istegi iletilecekse onun iceriğinin ayarlanmasıdir.

Ama şunu gözardı etmeyelim. Görsel sunuma dair detayları istemcide JavaScript ile değiştirebiliriz. Örnegin bir tabloda silmek istedigimiz bir satırın rengi değişebilir. Ancak bu o satırın silinmesi için bir istek oluşturmaz. Sadece formdaki bir değişkenin değeri (DOM olarak düşünürsek, ağactaki bir nodun degeri) değişmistir.

Form yollandığında bu DOM ağacındaki değer değişikligi önce doğrulanır. Doğrulamadan geçerse sunucudaki görsel bileşen ağacına uygulanır. Bu arada deger degisikligi olayı, vb olaylar işler. Daha sonra formun işlenmesi için olan eylemin (ornegin düğmeye tıklanması) sunucu tarafındaki görsel bileşen ağacındaki dengi olan olay işlenir.

Iste bu olay işleyici modelde yani JavaBean'lerde değişiklik yapar. Veri tabanı yada baska bir şekilde erişilen "esas veri"den silme yada benzeri işlemler ise burada yapılır. Bu katmanlı yapı sayesinde sisteme bozuk veri giremez ve veriler de bozulamaz.

JSF bu nedenle .NET'den bir kaç gömlek ustun zaten. :-)

JSF'de Sadece render-kit değiştirilerek HTML + JS + AJAX ureten JSF kodu kolayca WAP, XUL, XSLT, vb. çıktı üretir hale getirilebilir. Bunun nedeni uygulamanın sunucuda çalışması. .NET için bu iş bu kadar kolay değil.

Resmin icine AJAX konduğu zaman; AJAX HTTP istek ve yanıtlarının sayfaya anında yansımasını engelleyen bir teknoloji. Bu nedenle siz hala aynı sayfada olduğunuzu sanırken birden fazla HTTP istek/yanıt çevrimi bitmiş oluyor. Bu durumda JSF tarafında gelen bu isteklerin işlenmesini gerekir.

Bu istekler tıpkı az önce anlattığım gibi işlenir. JSF, yani sunucu tarafında özel bir anlamları yoktur. Sunucu istegin AJAX ile gelmesini önemsemez. Sadece bir HTTP isteği olarak görür. Bu isteği işlerken değer değişiklikleri, vb şeyler olabilir. Gorsel bileşenlerde değişiklikler gerekebilir. Bu durumda render-kit tarafından olusturulan HTML farklı olacaktır. İstemcinin de bu durumda "ekranı" güncelleyeceğini bekleriz.

İstemci tarafındaki AJAX'in gelen HTTP yanıtlarını işleme becerisi ile bunu yapacağını biliyoruz.

Dolayisi ile olayları JS oluşturmuş gibi gözükse de aslında olaylar her zaman oldugu gibi JSF çevriminde yani sunucuda islenir. JSF'in kendi olay döngüsünün istemci tarafındaki hiç bir teknoloji ile ilgisi ve bağımlılığı olmaz. Onlarla render-kit ilgilenir.

İlgili Yazılar

Java Struts

malkocoglu

Jakarta projesinin gözde teknolojilerinden Struts, JSP sayfaları ile sunucu tarafı Java kodlarının bağlanması için çok faydalı bir teknolojiye dönüştü. Model/Görüntü/Kontrolör (Model/View/Controller), kısa namı ile MVC olarak olarak bilinen mimarinin gerçekleştirimi olan Struts, tekrar kullanılır servis tarafı kodlarının tasarlanmasında yardımcı da oluyor.

Bu teknoloji hakkında ki yazıları www.bilgidata.com adresinde bulabilirsiniz.

Seminer haberi: Struts Shale

anonim

Konu: Struts Shale, Yer: ODTÜ Teknokent İkizler Konferans Salonu. Zaman : 14 Nisan Cuma 14:00. Süre : 1.5 saat

Struts 2.x için üstünde çalışılan yeni versiyonlar Struts Action Framework ve Struts Shale şeklinde ikiye ayrılıyor. Struts Action Framework Struts 1.x çizgisini takip ederken, Struts Shale JSF ile bileşen tabanlı bir yapıya geçiyor.

Bu sunumda Struts Shale ile ilgili aşağıdaki konuları inceleyeceğiz:

1. Struts 1.x e göre yenilikler
2. Shale'in yapısı
3. JSF ile ilgisi
4. Shale Core Library
6. Shale Dialog Controller yapısı
7. Shale Test Framework
8. Shale Validation
9. Örnek bir uygulamanın incelenmesi

Java Teknolojileri Televizyonda

anonim

Java Teknolojileri Derneği'nin katkılarıyla Java teknolojileri artık Türkiye'nin Teknoloji Televizyonu'nda.

Günlük yaşantımızın içerisine çoktan giren Java teknolojilerini ne kadar biliyor musunuz? Tüm dünyanın göz bebeği olan Java teknolojileri hakkinda fikir sahibi olmak ister misiniz? Fikir sahibi olmanın ötesinde Java teknolojilerini oğrenmek ister misiniz?

JavaDay `02

omniheurist

Sun`ın ünlü Java uzmanlarıyla tanışmak, tartışmak ve son yenilikler hakkında bilgi almak ister misiniz? Ayrıca Java Developer CD, Java Jumpstart CD, SunONE Starter Kit`i ve 3000$ değerinde yazılım paketi kazanma şansı yakalayacaksınız.

Bu gün tüm yazılım geliştiricilere açık.

Java Day 2002 - İstanbul
TARİH: 21 OCAK 2002, Pazartesi
YER: Hyatt Regency Oteli, Harbiye
LCV: developer@turkey.sun.com

Java Kitap Projesi - Bölüm 7

anonim

Türkçe Java Kitap Projesinin yeni bölümü yayında. Yeni bölümün içeriği:
Arayüz (Interface)
Birleştiricilik
Arayüz(Interface) ve Soyut sınıflar(Abstract classes)
Arayüz(Interface) ile çoklu kalıtım(Multiple inheritance)
....