Eğer ui:repeat kullanımını bilmiyorsanız, öncelikle ui:repeat’ın ne olduğunu anlatan ui:repeat kullanımı ve örneği sayfasını ziyaret etmenizi öneririm…

İç içe bir data table’ı kendi elinizle yapmak istiyorsak eğer, iki adet döngü kullanmamız gerekecektir. Ben iki adet ui:repeat kullanmayı tercih ediyorum… Hiç ui:repeat kullanmakla uğraşmak istemezseniz primefaces etiketi ile, size pratik bir yol sunmakta primeface ‘in web sitesini ziyaret etmenizi tavsiye ederim…

Gelelim kendi yapacağımız iç içe(nested) data table’ımıza.. Öncelikle java sınıfını oluşturmamız gerekmekte.. Bir bean sınıfımız olacak ve bu bean sınıfının içerisinde iki sınıf daha oluşturacağız. Bu iki sınıf benim iç içe liste oluşturmamı sağlayacak. Birinci iç sınıfım Personel adında olacak diğeri de Araba adında olacak. Personelin adını soy adını ve numarasını listelediklten sonra, hemen altına o personelin, arabasının plakasını, markasını listeleyeceğiz. Tahmin edebileceğiniz gibi, bir personelin birden fazla aracı olabilir. Hemen bean sınıfımın kodlarını paylaşıyorum sizlerle….

  1. @ManagedBean(name="BeanClass")
  2. @ViewScoped
  3. public class BeanClass{
  4.  
  5.  Araba arabaBir = new Araba();
  6.  Araba arabaIki = new Araba();
  7.  Araba arabaUc = new Araba();
  8.  
  9.  Personel personelBir = new Personel();
  10.  Personel personelIki = new Personel();
  11.  Personel personelUc = new Personel();
  12.  
  13.  
  14.  private ArrayList<Personel> personelListesi = new ArrayList<>();
  15.  public BeanClass(){
  16.  
  17.   personelBir.setPersonelAdi("Ayşe");
  18.   personelBir.setPersonelNo(1);
  19.   personelBir.setPersonelSoyAdi("Aymaz");
  20.  
  21.   personelListesi.add(personelBir);
  22.  
  23.   personelIki.setPersonelAdi("Fatma");
  24.   personelIki.setPersonelNo(2);
  25.   personelIki.setPersonelSoyAdi("KAymaz");
  26.  
  27.   personelListesi.add(personelIki);
  28.  
  29.   personelUc.setPersonelAdi("Derya");
  30.   personelUc.setPersonelNo(3);
  31.   personelUc.setPersonelSoyAdi("Deniz");
  32.  
  33.   personelListesi.add(personelUc);
  34.  }
  35.  
  36.  
  37.  
  38.  public ArrayList<Personel> getPersonelListesi() {
  39.   return personelListesi;
  40.  }
  41.  
  42.  public void setPersonelListesi(ArrayList<Personel> personelListesi) {
  43.   this.personelListesi = personelListesi;
  44.  }
  45.  
  46.  public class Araba{
  47.   private String arabaAdi;
  48.   private Integer plakaNo;
  49.   private String sahibi;
  50.  
  51.   public Araba(){
  52.    System.out.println("Araba");
  53.   }
  54.  
  55.   public String getArabaAdi() {
  56.    return arabaAdi;
  57.   }
  58.   public void setArabaAdi(String arabaAdi) {
  59.    this.arabaAdi = arabaAdi;
  60.   }
  61.   public Integer getPlakaNo() {
  62.    return plakaNo;
  63.   }
  64.   public void setPlakaNo(Integer plakaNo) {
  65.    this.plakaNo = plakaNo;
  66.   }
  67.   public String getSahibi() {
  68.    return sahibi;
  69.   }
  70.   public void setSahibi(String sahibi) {
  71.    this.sahibi = sahibi;
  72.   }
  73.  }
  74.  public class Personel{
  75.   private String personelAdi;
  76.   private String personelSoyAdi;
  77.   private Integer personelNo;
  78.  
  79.   private ArrayList<Araba> arabaListesi = new ArrayList<>();
  80.  
  81.   public Personel(){
  82.    System.out.println("Personel");
  83.    arabaBir.setArabaAdi("Reno");
  84.    arabaBir.setPlakaNo(123123);
  85.    arabaBir.setSahibi("Ismail Hoca");
  86.  
  87.    arabaListesi.add(arabaBir);
  88.    
  89.    arabaIki.setArabaAdi("Megan");
  90.    arabaIki.setPlakaNo(86786);
  91.    arabaIki.setSahibi("Mazgar Hoca");
  92.    
  93.    arabaListesi.add(arabaIki);
  94.    
  95.    arabaUc.setArabaAdi("Clio");
  96.    arabaUc.setPlakaNo(454546);
  97.    arabaUc.setSahibi("Barış Bey");
  98.    
  99.    arabaListesi.add(arabaUc);
  100.   }
  101.   public String getPersonelAdi() {
  102.    return personelAdi;
  103.   }
  104.   public void setPersonelAdi(String personelAdi) {
  105.    this.personelAdi = personelAdi;
  106.   }
  107.   public String getPersonelSoyAdi() {
  108.    return personelSoyAdi;
  109.   }
  110.   public void setPersonelSoyAdi(String personelSoyAdi) {
  111.    this.personelSoyAdi = personelSoyAdi;
  112.   }
  113.   public Integer getPersonelNo() {
  114.    return personelNo;
  115.   }
  116.   public void setPersonelNo(Integer personelNo) {
  117.    this.personelNo = personelNo;
  118.   }
  119.   public ArrayList<Araba> getArabaListesi() {
  120.    return arabaListesi;
  121.   }
  122.   public void setArabaListesi(ArrayList<Araba> arabaListesi) {
  123.    this.arabaListesi = arabaListesi;
  124.   }
  125.  }
  126. }

Şimdi de sırada html sayfam bulunmakta.. Bir repeater oluşturacağım ve bu repeater’a java sınıfımda oluşturduğum personel türünden bir listeyi atayacağım. Bu repeater personelleri listeleyecek. Her bir personel bilgisinin altında da personele ait arabaları göstereceğim için, repeaterın içerisinde kullandığım repeater’a da liste olarak personel sınıfımın içerisinde değişken olarak bulunan araba listesini atayacağım… Buyrun inceleyin…

  1. <h:form>
  2.      <h:form>  
  3.          <br />
  4.          <ui:repeat value="#{BeanClass.personelListesi}" var="Personel">
  5.          –  #{Personel.personelNo} – #{Personel.personelAdi} –  #{Personel.personelSoyAdi}
  6.          <br />
  7.           <ui:repeat value="#{Personel.arabaListesi}" var="arabaListesi">
  8.            **  #{arabaListesi.plakaNo}  –  #{arabaListesi.sahibi}  – #{arabaListesi.arabaAdi}
  9.            <br />
  10.        </ui:repeat>
  11.       </ui:repeat>
  12.      </h:form>  
  13.     </h:form>

Dikkatinizi, tüm personellerin araç bilgilerinin aynı olduğu çekmiş olabilir. Veriyi dinamik olarak oluşturmadığımız için, bilgiler aynı, siz değişik veriler de atayabilirsiniz…..

Diğer JSF Dersleri için TIKLAYINIZ



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