JSF ve Richfaces

Java’nin desktop tarafinda her zaman yavas oldugu söylenir. Bu söylentiye katilmamak elde degil. Çünkü zamaninda swing kullanarak yapmis oldugum bir desktop application beni  fazlasiyla çildirtti    Aslinda yeni nesil makinelerde hergangi bir sorun yasamiyorum JTable haricinde. JTable’a biraz yüklendiginiz zaman afalliyo ve render süresi oldukça fazla sürüyor.  Java desktop tarafinda zayif olabilir ama web tarafinda oldukça güçlü ve hizlidir  Java ‘da web araçlarinin gelisim tarihinden girersek asil konuya gelmemiz çok uzun sürebilir  Onun için direk konuya girmek daha iyi olur diye düsünüyorum.

JSF java için gelistirilmis  bir framework’dür. Model – View – Controller (MVC) yapisi ile yeni nesil standartlara göre web uygulamasi gelistirmemizi saglar.  Bünyesinde bulundurdugu bilesenler (DataTable, OutputText, SelectOneListbox vs. )  ile projeyi gelistirmemizde bir çok kolaylik sunar.

JSF her ne kadar kendi içerisinde bir çok bilesen barindirsada profesyonel bir proje gelistirirken bilesenleri yetersiz kalmakta. Iste bu anda yardimimiza 3. parti jsf kütüphaneleri yetismekte. RichFaces, Icefaces ve yerli mali yurdun herkes onu kullanmali PrimeFaces gibi bir çok 3. parti bilesen kütüphanesi bulunmakta. Bu kütüphaneler bize zengin bir bilesen toplugu sunarak projelerimizi gelistirmemizi saglamaktadirlar.

Bu yazida ve ardindan gelecek olan yazilarimda richfaces bilesenlerinin kullanimi hakkinda bilgiler verecegim. Richfaces benim için jsf için yazilmis en iyi 3. parti kütüphanedir. Jboss firmasi tarafindan opensource olarak gelistirilmekte ve ücretsiz dagitilmaktadir.  Richfaces’in en begendigim özelligi ise JSF Html bilesenler de dahil her türlü bilesene kolayca ajax destegi verebilmemiz. Bu sayede kullanicilar ile etkilesimi oldukça iyi olan uygulamalar ortaya çikartabiliyoruz.
Richfaces kütüphanelerini su adresten en son stabil sürümünü indirebilirsiniz. Ben richfaces’i seam ile beraber kullaniyorum. Yanliz yeni baslayanlar için seam hakkinda da bilgi vermek gerektiginden  jsf ( facelets)  ile beraber anlatacagim. IDE olarak kullanimi yeni arkadaslara daha kolay geldiginden Netbeans’i seçiyorum. Normal sartlarda Eclipse kullanmaktayim 

Öncelikle netbeans’a facelets destegini kazandirmak zorundayiz. Bunun için netbeans için facelets eklentisini kurmamiz gerekmekte. Netbeans 6.7.1 sürümünde Tools->Plugins penceresinde Available Plugins sekmesinde Facelets Support, bizi onu kurmamiz için beklemekte. Facelets Support eklentisini kurduktan sonra artik yeni bir proje olusturarak örneklerimize geçelim.

Netbeans basladiktan sonra File->New Project penceresinden Categories bölümünden Java Web’i seçiyoruz. Sonrasinda yan taraftaki Projects bölümünden ise Web Application’i seçerek Next butonuna basip devam ediyoruz.

jsf_richfaces_1

Siradaki penceremizde ise projemize bir isim vererek Next butonuna basiyoruz. Ben bu projeye yengec kod adini verdim

jsf_richfaces_2

3.  pencerede projenin çalisacagi server’i seçmemiz isteniyor.

jsf_richfaces_3

4. pencere de ise projemizde kullanacagimiz framework’leri seçmemiz isteniyor.  Burada Facelets ‘i seçip finish butonuna basiyoruz.

jsf_richfaces_4

Evet artik bir java web projesi olusturmus durumdayiz. Projemiz en yalin hali ile asagidaki gibi bir görüntü vermekte.

jsf_richfaces_5

Buraya kadar yaptigimizi özetlersek , netbeans’e facelets destegi kazandirdik ve facelets kullanarak bir proje olusturduk. Herseyin normal gittigini test etmek için projemizi build edip (Kisayol Tusu: F6) çalistiralim. Egerki herhangi bir sorun yok ise isletim sistemimizin default tarayicisi çalisarak projemizi açacaktir.

jsf_richfaces_6

Sira projemize jboss.org adresinden indirdigimiz Richfaces kütüphanelerini dahil etmeye geldi. Ben richfaces-ui-3.3.2.SR1 versiyonunu indirdim. Zip dosyasini açtigimiz zaman richfaces-ui-3.3.2.SR1\lib klasöründe  projemize dahil etmemiz gereken jar dosyalari bulunmakta. Proje agacindaki Libraries’e sag tiklayip Add Jar /Folder seçenegini seçiyoruz. Burada richfaces-ui-3.3.2.SR1\lib altindaki jar dosyalarini seçerek projemize dahil ediyoruz.


ichfaces-api-3.3.2.SR1.jar
richfaces-impl-3.3.2.SR1.jar
richfaces-ui-3.3.2.SR1.jar


Projemize Richfaces kütüphanelerini dahil ettikten sonra sira web.xml dosyasinda richfaces için gerekli olan tanimlamalari yapmaya geldi. web.xml dosyasindaki taginin hemen üstüne asagidaki kodlari yapistiriyoruz.


org.richfaces.SKIN
blueSky



org.richfaces.CONTROL_SKINNING
enable



RichFaces Filter
richfaces
org.ajax4jsf.Filter



richfaces
Faces Servlet
REQUEST
FORWARD
INCLUDE


Artik projemize richfaces’i da tanitmis olduk. Simdi buraya kadar herseyin yolunda gidip gitmedigini kontrol etmek için bir deneme yapalim. Projemizi olustururken bizim için otomatik olarak üretilmis iki adet xhtml dosyasi bulunmakta. Bunlardan bir tanesi sablon dosyamiz olan template.xhtml, digeri ise template-client.xhtml.

template.xhtml dosyasi  Asp.net bilenler için masterpage benzeyen bir yapi diyebiliriz. Daha sonra daha detayli olarak bu konuya deginecegim.  template-client.xhtml dosyasini açalim. Öncelikle richfaces için tanimli olan prefix’leri eklememiz gerekmekte. Dosyamiza su prefixleri ekliyoruz.


xmlns:f=”http://java.sun.com/jsf/core”
xmlns:rich=”http://richfaces.org/rich”
xmlns:a=”http://richfaces.org/a4j”


Simdi basit bir test için arasina asagidaki kodu yaziyoruz.

Merhaba
Merhaba Dunya

Bu kod richfaces bilesenlerinden olan panel’in tanimlamasini yapiyor. Buraya kadar herseyin dogru olup olmadigini kontrol için projemizi build edip çalistiriyoruz.

jsf_richfaces_7

Evet gördügünüz üzere buraya kadar herseyi dogru bir sekilde tanimladigimizin kaniti olarak sayfamizda richPanel güzel bir sekilde gözüktü.  Richfaces’in kurulumu bu kadar. Bundan sonra facelets sablon yapisi ve richfaces bilesenleri ile devam edecegiz.






0.0116579532623 | 3.5