JSF bileşenlerini bir sayfada bir araya getirerek
onları gruplayabiliriz.Kendimize ait bir etiket adı ile de diğer JSF
sayfalarından bir gruplanmış bileşeni çağırıp kullanabiliriz.
Composit components kullanılırsa JSF sayfalarının
bakımı daha kolay olur.
Composit component sayfalarını aşağıda ki gibi
lokalize etmeliyiz.
Burada "resources" klasörüne dikkat
etmeliyiz.Başka bir isim altında composit componentleri çağıramıyoruz.
Daha fazla uzatmadan nasıl yazılıp nasıl
kullanıldığına dair bir misal verelim.
iletisimForm.xhtml
<body>
<composite:interface>
<composite:attribute name="epostavalue"/>
<composite:attribute name="sifrevalue"/>
<composite:attribute name="mesajvalue"/>
<composite:attribute name="gonderButton" method-signature="void
action(javax.faces.event.ActionEvent)"/>
</composite:interface>
<composite:implementation>
<h:form id="iletisimFormID">
<h:panelGrid columns="2">
E-Posta:
<h:inputText value="#{cc.attrs.epostavalue}"
size="30"/>
Şifre:
<h:inputSecret value="#{cc.attrs.sifrevalue}" size="30"/>
Mesaj:
<h:inputTextarea value="#{cc.attrs.mesajvalue}" cols="30" rows="10"
/>
<h:commandButton value="Gönder" action="#{cc.attrs.gonderButton}"/>
</h:panelGrid>
</h:form>
</composite:implementation>
</body>
index.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:depo="http://xmlns.jcp.org/jsf/composite/depo"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<depo:iletisimForm epostavalue="#{my.eposta}"
sifrevalue="#{my.sifre}"
mesajvalue="#{my.mesaj}"
gonderButton="#{my.mesajgonder()}"/>
</h:body>
Sayfamız aşağıda ki gibi olur.
Burada yaptığımız şeylerin aynısını
custom tag yazarak da yapabiliriz.Fakat JSF 2.0 dan sonra custom tag lerin
yerini composit componentler almıştır.Composit componentleri kullanmak daha
kolaydır.Çünkü custom tag yazmak için web.xml e müdahale söz konusudur.Aynı
zamanda bu tagleri kaydedip kullanmak için bir taglib.xml dosyasına ihtiyaç
duyarız.Bu taglib.xml dosyası her daim taşınıp projeye gömülebilir.Fakat her
projede web.xml dosyasına ayar yapmak bir zaman kaybı olacağından custom tag
yerine composit componentleri kullanmak daha eftaldir.
Hiç yorum yok:
Yorum Gönder