twitter
    Find out what I'm doing, Follow Me :)

JSF Navigation (Sayfa Yönlendirme / Redirect)

Web uygulamalarında bir sayfadan diğerin yönlendirme yapmamız gerekebilir. Örneğin açılan ilk sayfa kullanıcı adı ve şifre doğru girildikten sonra anasayfaya yönlendirme yapmak , yanlış giriş yapıldığında ise aynı sayfada kalmak gibi. Ancak yönlendirme yaparken url miz ayrı kalabilir yada yeni yönlendirileceğimiz sayfanın ismiyle urlmiz değişir. Yeni bir proje oluşturalım ve bunlar arasındaki farkları görelim :

Yeni bir proje oluşturup Web Pages a sağ tıklayıp yeni bir JSF Page ekleyelim , bunun ismi home.xhtml olsun.Daha sonra index.xhtml sayfamızda isim ekleyeceğimiz ve giriş yapacağımız form elemanlarımızı ekleyelim.






Oluşturduğumuz home.xhtml içinde şu eklemeyi yapalım :


Kullanıcı adını formdan alıp anasayfada bize göstermemizi sağlayacak java  classımızı oluşturalım :


Sayfa yönlendirme işlemi url değişmeden sayfanın yönlendirilmesi ve url nin değişerek yönlendirilmesi şeklinde olabilir. Url nin değişmeden sayfanın yönlendirilmesinde oluşturduğumuz commandButton ın action ınında home - home.xhtml yazmamız yada java classımızdan sayfa ismini string olarak  almamız yeterlidir. bu saydığımız seçeneklerden herhangi biri yeterli olacaktır.

             1.seçenek   :        <h:commandButton id="btn" value="Giris" action="home"/>
             2.seçenek   :        <h:commandButton id="btn" value="Giris" action="home.xhtml"/>

Bu iki seçenek de sayfa yönlendirme işlemini yapabilir.Ayrıca java classından bu işlemi yapabilmek için java classımızda şu methodu oluşturup , commandButton action kısmında #{bean.sendUrl()} kodunu ekleriz.

                          public String sendUrl(){                                        public String sendUrl(){
                                       return "home";              yada                          return "home.xhtml";
                          }                                                                          }

                         <h:commandButton id="btn" value="Giris" action="#{bean.sendUrl()}"/>

Diğer yönlendirme şekli olan url nin de değiştiği sayfa yönlendirmesi için ise ; index.xhtml de bulunan butonun actionında şu değişiklik yapılmalıdır :
    
                         <h:commandButton id="btn" value="Giris" action="home?faces-redirect=true"/>

Ya da faces-config.xml dosyası ekleyerek  içine gerekli kodların eklenmesi yeterlidir. Bunun için WEB- INF klasörüne sağ tıklayıp  new --> JSF Faces Configuration seçilip faces-config.xml dosyası eklenir.

                         
Burada şu eklemeler yapılır :


Bu eklemeyle birlikte butonumuzun actionında  da gerekli değişiklikler yapmamız gerekir. xml dosyamızda from-outcome kısmında "login" yazdık burada home, welcome gibi baska değişkenler de kullanabilirdik ve yazdığımız login kelimesini butonun actionında yazarak bunların birleştirilmesi sağlanır.

         <h:commandButton id="btn" value="Giris" action="login"/>

Bu şekilde sayfa yönlendirmesi  yapılabilir.







0 yorum:

Yorum Gönder