10 Mayıs 2013 Cuma

Java JSF Rezervasyon Similasyonu

Bugün birlikte Java Server Pages’ da bir rezervasyon kayıt sistemi yazacağız. Bu sayfası yazarken yapacaklarımızı üç farklı kod parçasında işleyeceğiz. Bunlardan ilki, rezervasyon yapmasını istediğimiz kişinin, rezervasyon sırasında kendisinden istenilecek olan bilgilerin tutulduğu java sınıfım. Bu sınıfın ismine ben ‘RezerveEdenler’ dedim. Şimdi bu sınıfımın kodunu inceleyelim


  1. public class RezerveEdenler {
  2.  
  3. //Rezervasyonu yapan kişinin adını, soyadını ve kaç kişi kalacağını tutan –>
  4. // basit bir sınıf oluşturalım
  5.  private String ad;  
  6.  private String soyad;
  7.  private Integer kisiSayisi;
  8. //Bu sınıfın değişkenlerinin get() ve set() methodlarını oluşturalım..
  9.  public void setAd(String ad) {
  10.   this.ad = ad;
  11.  }
  12.  public String getAd() {
  13.   return ad;
  14.  }
  15.  public void setSoyad(String soyad) {
  16.   this.soyad = soyad;
  17.  }
  18.  public String getSoyad() {
  19.   return soyad;
  20.  }
  21.  public void setKisiSayisi(Integer kisiSayisi) {
  22.   this.kisiSayisi = kisiSayisi;
  23.  }
  24.  public Integer getKisiSayisi() {
  25.   return kisiSayisi;
  26.  }
  27.  
  28. }
  29. //Sınıfımızı oluşturduk, artık ne zaman RezerveEdenler Sınıfını çağırırsak –>
  30. //bize istediğimiz değişkenleri getirecektir..

    Şimdi de yeni bir sınıf açacağız fakat bu sınıf aynı zamanda managed beans olarak faces-config.xml ‘e kaydetmemiz gerekmekte.
    Faces-Config.xml ‘e, managed bean olarak oluşturacağımız sayfayı kaydediyor olmamızın sebebi, arayüz sayfamızın anlık bağlantı sınıflarından bir tanesi olmasıdır.
    Bean sınıflarını ben diğer sınıflarla karışmaması için adını, IsimBean olarak kaydediyorum.
    RezervasyonBean sınıfımız;
    1.  
    2. import java.util.ArrayList; //liste oluşturduğumuzda bunun tanınması için
    3. import java.util.List;  //liste oluşturduğumuzda bunun tanınması için
    4.  
    5.  
    6. public class RezervasyonBean {
    7.  
    8.  private RezerveEdenler RezerveEdenlerBilgi = new RezerveEdenler();
    9. //RezervasyonBilgi nesnesinden birtane oluşturuluyor..
    10.  private List<RezerveEdenler> RezerveEdenlerListesi = new ArrayList<RezerveEdenler>();
    11. //RezerveEdenler türünden olacak şekilde, bir liste oluşturuyoruz. Liste oluşturuyoruz çünkü rezervasyon
    12. //kayıtlarının tamamı bu listede sırasıyla tutulacak. Şuanda veritabanına bağlanmadığımız için
    13. //elimizdeki verileri tutabileceğimiz bir liste bu..
    14.  
    15.  public void kaydet(){
    16. //arayüzden RezervasyonBean'e gönderilen verileri kaydedilmesi için, kaydet() method'unun
    17. //çalıştırılması gerekmekte. Bu method çağrıldığında oluşturduğum listeye, add fonksiyonu
    18. //yardımıyla, RezerveEdenlerBilgi sınıfında oluşturulan içeriği ekliyoruz.
    19.   RezerveEdenlerListesi.add(RezerveEdenlerBilgi);
    20. //ekleme işleminden sonra, gelecek diğer değerler için yeni bir instance oluşturuyoruz..
    21.   RezerveEdenlerBilgi = new RezerveEdenler();
    22.  }
    23.  public void duzenle(){
    24.   RezerveEdenlerBilgi = new RezerveEdenler();
    25.  }
    26.  public void sil(){
    27. //silme işlemini de yine listeden yapmamız gerekmekte. listeden seçili olan nesneyi remove
    28. //fonksiyonu sayesinde siliyor ve sonrasında yeni bir instance oluşturuyoruz..
    29.   RezerveEdenlerListesi.remove(RezerveEdenlerBilgi);
    30.   RezerveEdenlerBilgi = new RezerveEdenler();
    31.  }
    32.  
    33. //buradan sonrası, oluşturduğumuz değişkenlerin get() ve set() methodları..
    34.  public void setRezerveEdenlerBilgi(RezerveEdenler rezerveEdenlerBilgi) {
    35.   RezerveEdenlerBilgi = rezerveEdenlerBilgi;
    36.  }
    37.  
    38.  public RezerveEdenler getRezerveEdenlerBilgi() {
    39.   return RezerveEdenlerBilgi;
    40.  }
    41.  
    42.  public void setRezerveEdenlerListesi(List<RezerveEdenler> rezerveEdenlerListesi) {
    43.   RezerveEdenlerListesi = rezerveEdenlerListesi;
    44.  }
    45.  
    46.  public List<RezerveEdenler> getRezerveEdenlerListesi() {
    47.   return RezerveEdenlerListesi;
    48.  }
    49.  
    50.  
    51. }
    Son olarak size, arayüz sayfasının kodlarını vereceğim…
    1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    2. <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    3. <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
    4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    8.  
    9. <title>Insert title here</title>
    10. </head>
    11. <body>
    12. <f:view>
    13.  <h:form>
    14.   <h:panelGrid columns="2">
    15.    Ad : <h:inputText value="#{rezervasyonBean.rezerveEdenlerBilgi.ad}" />
    16.    Soyad : <h:inputText value="#{rezervasyonBean.rezerveEdenlerBilgi.soyad}" />
    17.    Kişi Sayısı : <h:inputText value="#{rezervasyonBean.rezerveEdenlerBilgi.kisiSayisi}" />
    18.    <h:commandButton value="Kaydet" action="#{rezervasyonBean.kaydet}" rendered="#{rezervasyonBean.rezerveEdenlerBilgi.ad==null}" />
    19.    <h:commandButton value="Duzenle" action="#{rezervasyonBean.duzenle}" rendered="#{rezervasyonBean.rezerveEdenlerBilgi.ad!=null}"/>
    20.   </h:panelGrid>
    21.  </h:form>
    22.  <h:form>
    23.  
    24.   <h:dataTable value="#{rezervasyonBean.rezerveEdenlerListesi }" var="rez">
    25.    <h:column>
    26.     <f:facet name="header">
    27.      <h:outputText value="Sil" />
    28.     </f:facet>
    29.     <h:commandLink action="#{rezervasyonBean.sil}" value="Sil">
    30.      <f:setPropertyActionListener target="#{rezervasyonBean.rezerveEdenlerBilgi}" value="#{rez}" />
    31.     </h:commandLink>
    32.    </h:column>
    33.    
    34.    
    35.    <h:column>
    36.     <f:facet name="header">
    37.      <h:outputText value="Sec" />
    38.     </f:facet>
    39.     <h:commandLink value="Sec" >
    40.      <f:setPropertyActionListener target="#{rezervasyonBean.rezerveEdenlerBilgi }" value="#{rez}" />
    41.     </h:commandLink>
    42.    </h:column>
    43.    <h:column>
    44.     <f:facet name="header">
    45.      <h:outputText value="Ad" />
    46.     </f:facet>
    47.     <h:outputText value="#{rez.ad }" />
    48.    </h:column>
    49.    
    50.    <h:column>
    51.     <f:facet name="header">
    52.      <h:outputText value="Soyad" />
    53.     </f:facet>
    54.     <h:outputText value="#{rez.soyad }" />
    55.    </h:column>
    56.    <h:column>
    57.     <f:facet name="header">
    58.      <h:outputText value="Kisi Sayisi" />
    59.     </f:facet>
    60.     <h:outputText value="#{rez.kisiSayisi }" />
    61.    </h:column>
    62.  
    63.  
    64.  
    65.   </h:dataTable>
    66.  </h:form>
    67. </f:view>
    68. </body>
    69. </html>

Hiç yorum yok:

Yorum Gönder