Arkadaşlar, JSF ile en basit halde bir bileşen oluşturmak istersek, bunun en az 3 adımı olması gerekir.

1) Bileşenin tasarımı
2) Bileşenin Yayınlandığı sayfa
3) Bileşenin yayınlandığı sayfanın Bean Sınıfı

Öncelikle bileşen tasarımından başlamak gerekirse eğer, örnek kodumumuzu hemen paylaşalım

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4.  xmlns:f="http://java.sun.com/jsf/core"
  5.  xmlns:h="http://java.sun.com/jsf/html"
  6.  xmlns:p="http://primefaces.org/ui"
  7.  xmlns:cmp="http://java.sun.com/jsf/composite">
  8. <head>
  9. </head>
  10. <body>
  11.  <cmp:interface>
  12.   <cmp:attribute name="ad" />
  13.   <cmp:attribute name="kyt" method-signature="java.lang.String action()" default="null"/>
  14.  </cmp:interface>
  15.  <cmp:implementation>
  16.   <p:inputText value="#{cc.attrs.ad}"/>
  17.   <p:commandButton action="#{cc.attrs.kyt}" value="kaydet"/>
  18.  </cmp:implementation>
  19. </body>
  20. </html>

Buradaki etiketlerimiz içerisinde, özelliklerimizi ve bu özellikleri ne olarak kullanacağımızı yazıyoruz. Benim paylaştığım kodda iki tane özelliğimiz bulunmakta. Bunlar ad ve kyt . Birisi ismi tutacak diğeri ise kayıt metodunu. kyt özelliğine bir de action tanımlaması yaptım çünkü bu bir button ile çalıştırılacak…

Daha sonra implementation kısmına geçmekteyiz. Burası gerçeklemenin yapıldığı yer, yani özelliklerimizi nasıl kullanacağımızı anlatıyoruz.
Bir inputText ve bir de commandButton kullanacağımı ifade ediyorum. Implementation ‘da oluşturduğum özellikleri burada eşleştiriyorum. ad ile inputText eşleşmekte ve commandButton ile de kyt özelliğim..

Peki bu oluşturduğum Composite Compenent’i nasıl kullanacağım.. ?

Bileşenimi yani Composite Compenent’i nerede kullanacaksam oraya sadece

  1. <cmp:compenent2
  2.     ad="#{bilesendenemesi.isim}"
  3.     kyt="#{bilesendenemesi.Kaydet}" />

yazmam yeterli. Burası karışık gelebilir. Hemen açıklıyorum.
de yazan cmp ifadesi, kullandığım resources’daki klasörün ismi. Buraya abd yazsa idim şeklinde yazılacaktı. Peki ya compenent2 nereden geldi? O da resources’daki klasörün altında bulunan compenent tasarım sayfamın ismi. Az önce 2 tane özelliği olan ve gerçeklemesini yaptığımız sayfanın adı. Yani ben bileşene hangi ismi verirsem ve onu hangi klasörün altına koyarsam, onların dizin adını alıyor…

herhangi bir sayfada aşağıdaki gibi bileşeni kullanabilirsiniz…

  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">
  9.  <ui:define name="head">
  10.  </ui:define>
  11.  <ui:define name="body">
  12.   <style type="text/css">
  13.   </style>
  14.   <h:body>
  15.    <h:form id="Frm">
  16.     <cmp:compenent2
  17.     ad="#{bilesendenemesi.isim}"
  18.     kyt="#{bilesendenemesi.Kaydet}" />
  19.    </h:form>
  20.   </h:body>
  21.  </ui:define>
  22. </ui:composition>

Şimdi bilgileri nereden çekeceğine karar verelim.. Herhangi bir bean sınıfı oluşturuyorum…

  1. package dynerp.gnl;
  2.  
  3. import java.sql.Date;
  4.  
  5. import javax.faces.bean.ManagedBean;
  6. import javax.faces.bean.SessionScoped;
  7. import javax.faces.bean.ViewScoped;
  8.  
  9. @ManagedBean(name="bilesendenemesi")
  10. @ViewScoped
  11. public class bilesendenemesi {
  12.  
  13.  private String isim;
  14.  
  15.  public void Kaydet(){
  16.   System.out.println("Deger = ");
  17.  }
  18.  
  19.  public String getIsim() {
  20.   return isim;
  21.  }
  22.  
  23.  public void setIsim(String isim) {
  24.   this.isim = isim;
  25.  }
  26.  
  27.  
  28. }


*** *** 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*** ***