JSF etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
JSF etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Temmuz 2014 Pazartesi

JSF,EJB ve JPA ile Web Uygulaması-2

Öncelikle herkese hayırlı ramazanlar diyerek yazıma başlıyorum.
Geçen yazımda Eclipse üzerinde bir EJB projesinin nasıl create edildiği , JPA , DAO ve Facade patternlerini kullanarak bir MVC projesinin nasıl yapılacağı hakkında konuşmuştuk.
Artık dinamik bir web projesi açıp , bu EJB projesini de dinamik web projemize referans göstererek login ekranımızı yapmaya başlayalım.Eclipse üzerinde dinamik bir web projesi aşağıda ki gibi açılır.






Açtığımız bu web projesinde ki ManagedBean lerde EJB leri kullanmamız için daha önceden create ettiğimiz EJB projesini eklememiz gerekiyor. Bu işlem aşağıda ki gibi olur.




Tüm bunları yaptıktan sonra artık login sayfamızı yazabiliriz.


index.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:p="http://primefaces.org/ui"
       xmlns:f="http://java.sun.com/jsf/core">

 <h:head>
        <title>Giriş</title>
    </h:head>
    <h:body style="background-color: azure">
        <h:outputStylesheet library="css" name="formOrtala.css" />
        <br/><br/><br/><br/><br/><br/><br/>
        <h:form styleClass="centered2">
            <h3>Üye girişi</h3>
            <br/>
            <h:panelGrid columns="3" border="0">
                <h:graphicImage library="images" name="login.png"/>
                <h:outputLabel value=""/>
                <h:outputLabel value=""/>
                <h:outputLabel value="Kullanıcı adı:"/>
                <h:inputText value="#{ugcb.kullaniciadi}" size="25" required="true"
                             requiredMessage="Kullanıcı adını boş bırakmayınız!"
                             id="kullaniciadi"/>
                <h:message for="kullaniciadi" style="color: red"/>
                <h:outputLabel value="Şifre:"/>
                <h:inputSecret value="#{ugcb.sifre}" size="25" required="true"
                               requiredMessage="Şifreyi boş bırakmayınız!"
                               id="kullanicisifre"/>
                <h:message for="kullanicisifre" style="color: red"/>
                <h:commandButton value="Giriş" style="background: skyblue" action="#{ugcb.kontrolYap}" />
                <h:link value="Kayıtlı değilseniz kayıt olmak için tıklayınız!"
                        outcome="kayitSayfasi" target="_new"/>
                <h:outputText value=""/>
                <h:outputText value=""/>
                <h:link value="Şifremi unuttum" outcome="sifremiUnuttum" target="_new"/>
            </h:panelGrid>
            <h:messages  globalOnly="true" style="color: red"/>
        </h:form>
    </h:body>

</html>

Bu sayfanın çıktısı aşağıda ki gibi olur.



Artık login olma kontrolümüzü yapan ManagedBean imizi yazabiliriz.


UyeGirisCikisBean.java

@ManagedBean(name = "ugcb")
@SessionScoped
public class UyeGirisCikisBean implements Serializable {

       private static final long serialVersionUID = 1L;

       private String kullaniciadi;
       private String sifre;
       private Uyeler entity;

       @EJB
       private UyelerFacade service;

       public UyeGirisCikisBean() {
             entity = new Uyeler();
       }

       public String kontrolYap() {

             try {
                    entity = service.findMemberByUserName(kullaniciadi);
             } catch (Exception e) {
                    e.printStackTrace();
             }
             if (entity.getSifre().equals(sifre)) {
                    HttpSession session = Util.getSession();
                    session.setAttribute("kullaniciadi", kullaniciadi);
                    System.out.println("USERNAME:" + Util.getUserName());
                    System.out.println("USERID:" + Util.getUserId());
                    return "giris.xhtml?faces-redirect=true";
             } else {
                    FacesContext.getCurrentInstance().addMessage(null,
                                  new FacesMessage("Şifre yanlış!"));
                    return null;
             }

       }

       public String logout() {
             HttpSession session = Util.getSession();
             session.invalidate();
             return "logoutPage";
       }


       public String getKullaniciadi() {
             return kullaniciadi;
       }

       public void setKullaniciadi(String kullaniciadi) {
             this.kullaniciadi = kullaniciadi;
       }

       public String getSifre() {
             return sifre;
       }

       public void setSifre(String sifre) {
             this.sifre = sifre;
       }

}

Kullanıcı adımız ve şifremiz ile giriş yaptığımız zaman yönlendirildiğimiz giriş sayfası aşağıda ki gibidir.



25 Eylül 2013 Çarşamba

JSF de h:dataTable kullanımı

JSF de kayıtları listelemek için kullandığımız bir dataTable nesnesi vardır. Genellikle bir parametreyi alır ve listeler.
Tabi bu listeleme işini yaparken neyi listelediğimize dikkat etmeliyiz.
Aşağıda bu kullanımı anlatan bir uygulama bulunmaktadır. Burada yapılan bir formda ki inputText lere girilen değerlerin bir ArrayList dee tutulup ,kaydet butonuna basar basmaz kaydettiğimiz tüm değerler liste halinde bize getirilmesidir.

Personel.java

package com.mesutemre;

import java.math.BigDecimal;
public class Personel {
    String numarasi;
    String adiSoyadi;
    BigDecimal maasi;
    int yasi;
    public Personel(String numarasi, String adiSoyadi, BigDecimal maasi, int yasi) {
        this.numarasi = numarasi;
        this.adiSoyadi = adiSoyadi;
        this.maasi = maasi;
        this.yasi = yasi;
    }

    public String getNumarasi() {
        return numarasi;
    }

    public void setNumarasi(String numarasi) {
        this.numarasi = numarasi;
    }

    public String getAdiSoyadi() {
        return adiSoyadi;
    }

    public void setAdiSoyadi(String adiSoyadi) {
        this.adiSoyadi = adiSoyadi;
    }

    public BigDecimal getMaasi() {
        return maasi;
    }

    public void setMaasi(BigDecimal maasi) {
        this.maasi = maasi;
    }

    public int getYasi() {
        return yasi;
    }

    public void setYasi(int yasi) {
        this.yasi = yasi;
    }
}

YonetimliBean.java

package com.mesutemre;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "yb")
@RequestScoped
public class YonetimliBean implements Serializable {
    String adisoyadi, numarasi;
    BigDecimal maasi;
    int yasi;
    private static List<Personel> personelListesi = new ArrayList<Personel>();
   
    public String getAdisoyadi() {
        return adisoyadi;
    }

    public void setAdisoyadi(String adisoyadi) {
        this.adisoyadi = adisoyadi;
    }

    public String getNumarasi() {
        return numarasi;
    }

    public void setNumarasi(String numarasi) {
        this.numarasi = numarasi;
    }

    public BigDecimal getMaasi() {
        return maasi;
    }

    public void setMaasi(BigDecimal maasi) {
        this.maasi = maasi;
    }

    public int getYasi() {
        return yasi;
    }


    public void setYasi(int yasi) {
        this.yasi = yasi;
    }
   

    public List<Personel> getPersonelListesi() {
        return personelListesi;
    }

    public void setPersonelListesi(ArrayList<Personel> personelListesi) {
        this.personelListesi = personelListesi;
    }

    public String kayitEkle() {
        Personel personel = new Personel(this.adisoyadi, this.numarasi, this.maasi, this.yasi);
        personelListesi.add(personel);
       
        this.adisoyadi = "";
        this.numarasi = "";
        this.yasi = 0;
        this.maasi = null;
       
        return "";
    }
}

index.xhtml

<h:body>
        <h:outputStylesheet library="css" name="table-style.css" />
        <h:form>
            <h:panelGrid columns="2" border="0">
                <h:outputLabel value="NUMARASI:" />
                <h:inputText value="#{yb.numarasi}" />
                <h:outputLabel value="ADI SOYADI:" />
                <h:inputText value="#{yb.adisoyadi}" />
                <h:outputLabel value="YAŞI:" />
                <h:inputText value="#{yb.yasi}" />
                <h:outputLabel value="MAAŞI:" />
                <h:inputText value="#{yb.maasi}" />
                <h:outputLabel value="" />
                <h:commandButton value="Ekle" action="#{yb.kayitEkle()}" />
            </h:panelGrid>

            <hr />

            <h:dataTable value="#{yb.personelListesi}" var="p"
                         styleClass="personel-tablo" headerClass="personel-tablo-baslik"
                         rowClasses="personel-tablo-tek-satir,personel-tablo-cift-satir">
                <h:column>
                    <f:facet name="header">NUMARASI</f:facet>
                        #{p.numarasi}
                </h:column>

                <h:column>
                    <f:facet name="header">ADI SOYADI</f:facet>
                        #{p.adisoyadi}
                </h:column>

                <h:column>
                    <f:facet name="header">YAŞI</f:facet>
                        #{p.yasi}
                </h:column>

                <h:column>
                    <f:facet name="header">MAAŞI</f:facet>
                        #{p.maasi}
                </h:column>
            </h:dataTable>
        </h:form>
    </h:body>

Uygulamanın ekran çıktısı aşağıda ki gibi olur.