Neden bir component yani bir bileşen kullanırız.. Farklı sayfalarda aynı yapıyı kullanacaksak eğer, kodlarımızı sürekli tekrar etmemize gerek yoktur. Bir bileşen(component) oluşturur, ihtiyaç duyduğumuz her sayfada o bileşeni kullanarak kod tekrarından kurtulabiliriz. Peki nasıl bileşen oluşturabiliriz. Öncelikle ekranda gözükmesini istediğimiz bileşenin, özelliklerini yani attribute’lerini tanımlamalıyız. Bu tanımlamaları da interface etiketleri arasında kullanacağız. Örneğin ;

  1. <cmp:interface>
  2.   <cmp:attribute name="id" />
  3.   <cmp:attribute name="kytId" targetAttributeName="actionListener"
  4.    method-signature="void myAction(javax.faces.event.ActionEvent)" />
  5.  </cmp:interface>

Sadece iki özellik(attribute) tanımladım, onlar da id ve kayıtId. Şimdi bunların yordamlarını yani implementasyonlarını gösterelim aynı sayfada..

  1.  <cmp:implementation>
  2.   <h:outputScript name="jsf.js" library="javax.faces" />
  3.   <h:outputScript library="js" name="cmp.js" target="head" />
  4.   <h:outputStylesheet library="css" name="cmp.css"></h:outputStylesheet>
  5.  
  6.   <h:panelGroup id="#{cc.attrs.id}_cmp">
  7.    <p:toolbar styleClass="OzlTolBar">
  8.     <p:toolbarGroup align="left">
  9.  
  10.      
  11.       <p:commandButton value="Kaydet" icon="ui-icon-document" id="kytId"  />
  12.       <p:separator />
  13.                                  </p:toolbarGroup>
  14.    </p:toolbar>
  15.   </h:panelGroup>
  16.  </cmp:implementation>
  17. <

Bu bizim toolbar.xhtml sayfamız olsun. Buraya kadar gayet iyi, fakat bu bileşeni herhangi bir sayfada nasıl çağıracağım ?

  1.     <cmp:toolbar kytId="#{Demo.kaydet}">
  2.    </cmp:toolbar>

Sadece bunu, sayfada çağırmak istediğiniz alana yazmanı yeterlidir. Peki cmp:toolbar ‘ın anlamı ne..cmp ‘nin anlamı, toolbar.xhtml ‘in bulunduğu klasörün adı. toolbar ise toolbar.xhtml’den gelmekte.
Demo adında bir bean sınıfım var, kaydet butonuna tıklandığında Demo sınıfının kaydet metodu çalışacaktır.. yalnız kaydet metodu şu şekilde paremetre almak zorundadır

  1. public void kaydet(ActionEvent evn){
  2.   System.out.println("kaydet girdi————-");
  3.  }

Not : bileşeni çağıracağınız sayfanın en üstünde

  1. <ui:composition xmlns="http://www.w3.org/1999/xhtml"
  2.  template="/gnl/master.xhtml"
  3.  xmlns:ui="http://java.sun.com/jsf/facelets"
  4.  xmlns:h="http://java.sun.com/jsf/html"
  5.  xmlns:f="http://java.sun.com/jsf/core"
  6.  xmlns:p="http://primefaces.org/ui"
  7.  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
  8.  xmlns:cmp="http://java.sun.com/jsf/composite/cmp">

eklenmesi gerekmektedir…

Beğendiniz mi?






*** *** Rica*** ***

Merhaba, cep telefonları için bir uygulama yazdım. Uygulamamın başarılı olması için onu android marketten indirir misiniz? Kesinlikle virüs ya da benzeri tehlikeler içermemektedir.
Aslında faydasız bir uygulama da değil. Allah korusun, acil durumlarda kan ararsanız eğer, şehre ve kan grubuna göre kan arama uygulaması. indirmek için lütfen : tıklayınız

*** *** Rica*** ***