JSF

JSF Dersleri-Composite Components

Merhaba arkadaşlar. Bu yazımızda “Composite Componenets” konusunu öğreneceğiz.

Bileşik Bileşenler Nedir?

Bileşik bileşenler bizim bir yerde yazdığımız kodu diğer sayfalar içinde de kullanmamızı sağlayan yapıdır. Bileşik bileşen ile yazdığımız kod diğer sayfalarda etiket olarak kullanılır. Örneğin bizim kullandığımız h:commandButton, h:inputText birer etikettir. İşte bileşik bileşenler tıpkı bunlar gibi her sayfada ulaşılabilir olacaktır.

Nasıl Kullanılır?

Bileşik bileşenlerinin kullanımına dair bir örnek yaparak nasıl kullanıldığını anlamaya çalışalım. Öncelikle projemizi aşağıdaki resimde olduğu gibi oluşturalım.

2014-06-22 20:45:58

Örneğimize ait kodlar ve açıklaması aşağıda yer almaktadır.

index.xhtml Kodu

 

isim_soyisim.xhtml Kodu

 

kodlar.xhtml Kodu

 

Managedbean.java Kodu

 

Kodların açıklaması

kodlar.xhtml içerisinde yer alan <composite:interface> etiketi bileşik bileşeni oluşturmaya yarayan etikettir. Yani diğer sayfada <tekyazimlikkod:kodlar> etiketi açıldığında etikete ait bileşenler bu etiket içinde tanımlanmaktadır. <composite:attribute> bileşen tanımlamamıza olanak sağlayan etikettir. Bu örnekte <tekyazimlikkod:kodlar> etiketi için 4 adet bileşenimiz vardır.

<composite:implementation> etiketi <composite:interface> etiketininde yazılan bileşenlerin kullanılmasını ve uygulanmasını sağlayan etikettir. #{cc.attrs.Adınız_yaz}ifadesinde cc

bileşen kelimesini, attrs attributes kelimesini temsil etmektedir. Adını_yaz kendi oluşturduğumuz bileşendir. #{cc.attrs.Adınız_yaz}ifadesi ekrana Adınız_yaz bileşenine atanan değeri basacaktır.

<h:inputText id=”Ad” value=”#{cc.attrs.Adınız_degerini_al}”/> ifadesi girilen ismin  Adınız_degerini_al bileşenine atanacağını söyler. Daha sonra bu isim index sayfası içinde managed bean yapısına aktarılmaktadır. Soyad kısmı da aynıdr.

Bu yapı içerisinde bir de buton bulunmaktadır. Bu projeyi yazarken denedim ve gördüm ki butonu bileşik bileşen dışına alırsanız girilen isim soyisim gözükmemekte. Buna da dikkat etmeliyiz.

index.xhtml içinde sizde kodu kendiniz yazarken göreceksiniz ki <tekyazimlikkod:kodlar>etiketi kendiğilinden gelecektir. Adınız_yaz=”Adınız” kısmı kodlar.xhtml içinde yer alan #{cc.attrs.Adınız_yaz} kısmına Adınız yazısını gönderip ekrana Adınız yazılmasını sağlamaktadır. Adınız_degerini_al=”#{managedbean.isim}” ifadesi ise inputText’e girilen ismin managed bean içerisindeki isim değişkenine atanmasını sağlamaktadır. Soyad kısmında da bu söylediklerimiz geçerlidir.

Managed Bean ve isim_soyisim.xhtml sayfalarında ayrıca anlatılacak bir şey yoktur. Daha önce öğrendiğimiz şeylerdir.

Bir de ekran çıktımızı görelim.

2014-06-22 22:25:30

 

 

 

 

 

2014-06-22 22:26:31

 

 

 

 

 

 

Bileşik bileşenlerin kullanımı da bu şekilde arkadaşlar. Gelecek yazımızda JSF ve AJAX’ın birlikte nasıl kullanıldığını öğreneceğiz. Esen kalın.