JSF Sayfa Geçişleri ve Yönlendirmeleri (Page Navigation)

threepages

Bu yazımızda JSF sayfaları arasında nasıl yönlendirme yapabileceğimizi inceleyeceğiz

Dinamik web sayfaları geliştirirken ihtiyaçlar doğrultusunda farklı sayfalara geçiş yapmak gerekir . Örnek verirsek bir alışveriş sitesinde bir ürüne tıkladıktan sonra o ürünün detaylarını gösteren farklı bir web sayfasının açılmasını bekleriz

Alttaki şekilde bir web sayfasının örnek sayfa geçişleri görülmektedir

faces-config_

JSF içerisinde sayfa geçişlerini farklı yöntemler kullanarak yapabiliriz

JSF Sayfası İçerisinde Otomatik Yönlendirme

Bu yöntemde jsf dosyasının içerisinde yönlendireceğimiz web sayfasını belirtiyoruz . Alttaki örnekteki web sayfasında Gönder butonuna bastığımız zaman userDetail.jsp sayfası açılır.

 

 <f:view>
  <h:form>
         <h:commandButton value="Gönder" action="userDetail" />
  </h:form>
</f:view>  

Managed Bean İçerisinde Otomatik Yönlendirme

Bu yöntemde managed bean içerisinde yönlendirme işlemi yapılır .

jsf sayfası alttaki gibidir

 <f:view>
  <h:form>
         <h:commandButton value="Gönder" action="#{userManagedBean.send}" />
  </h:form>
</f:view>   

managed bean içerisinde ise yönlendirme alttaki gibi olur

public String send(){
                return "userDetail";
}

 

Koşullu Yönlendirme

JSF sayfasundan parametre gönderip , gönderdiğimiz parametrelere göre managed bean içerisinde farklı sayfalara yönlendirme yapabiliriz

Not : <f:param bileşeni @RequestScope ile kullanılmalıdır

jsf sayfası alttaki gibidir

<h:commandLink value="UserDetail" action="#{userManagedBean.send}" >
 <f:param name="pageId" value="1"></f:param>
</h:commandLink>
<br/>
<h:commandLink value="UserPicture" action="#{userManagedBean.send}" >
 <f:param name="pageId" value="2"></f:param>
</h:commandLink>  

managed bean içerisinde koşullu yönlendirme alttaki gibidir

@ManagedProperty(value="#{param.pageId}")
private Integer pageId;

public String send(){
 if(pageId == 1){
  return "userDetail";
 }else{
  return "userPicture";
 }
}

 

faces-config Dosyasından  Yönlendirme

Bazı yönlendirme işlemleri faces-config.xml yardımıyla yapılır .  Bu yöntem için faces-config.xml dosyasında navigation-rule tanımlanır .

<navigation-rule>
    <from-view-id>.....xhtml</from-view-id>
    <navigation-case>
       <from-action>#{managedBeanAdi.managedBeanMetodu}</from-action>
       <from-outcome>page</from-outcome>
       <to-view-id>page1.jsf</to-view-id>
    </navigation-case>
 <navigation-rule>

 

from-view-id : Hangi web sayfasından yönlendirilecse o web sayfasının adı yazılır
navigation-case : Yönlendirme kuralları bu tag içerisine yazılır
from-action : Managed bean metodu
from-outcome : managed bean metodunda return ettiğimiz karakter seti
to-view-id : Yönlendireceğimiz jsf sayfası

örnek jsf sayfası alttaki gibidir

<h:form>
  <h:commandLink value="UserDetail" action="#{userManagedBean.send}" />
 </h:form>    

örnek managed bean içerisinde koşullu yönlendirme alttaki gibidir

public String send(){
 return "userPage";
}

faces-config konfigurasyonu

<navigation-rule>
<from-view-id>user.jsp</from-view-id>
<navigation-case>
<from-action>#{userManagedBean.send}</from-action>
<from-outcome>userPage</from-outcome>
<to-view-id>userDetail.jsp</to-view-id>
</navigation-case>
</navigation-rule>

 

Sayfa Redirect(Yönlendirme)
Bir web sayfasından başka bir web sayfasına yönlendirme işlemini direk web sayfası içerisinden yapabiliriz
örnek jsf sayfası alttaki gibidir

<h:commandLink value="UserDetail" action="userDetail?faces-redirect=true" />   

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*