JSF 1.2 de tum navigation kurallari faces-config.xml de yapilmasi gerekiyordu. JSF 2.x te bu zorunluluk ortadan kalkti.
Static Navigation
Simdiye kadar orneklerimizde Static Navigation’i kullandik. <h:commandButton> component’inde action attribute olarak gidecegi sayfa bilgisini deger olarak verdik.
<h:commandButton value="Login" action="welcome" />
- action attribute degeri outcome olarak isimlendirilir yani “welcome” degeri outcome bilgisidir.Eger outcome da dosya bilgisi yoksa mevcut view in dosya bilgisi eklenir. Yani calistirdigimiz sayfa xhtml oldugu icin outcome bilgisi welcome.xhtml olarak degerlendirilir.
- Outcome / ile baslamiyorsa path olarak current/mevcut view baz alinir.
Outcome bilgisini action attribute’te verebilecegimiz gibi metot da kullanabiliriz.
NavigationBean.java
package _18.static1.navigation; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class NavigationBean { public String goToPage3() { return "page3"; } }
page1.xhtml
<h:form> <h3>Static Navigation</h3> <p> <h:commandButton value="Page2" action="page2" /> </p> <p> <h:commandButton value="Page3" action="#{navigationBean.goToPage3}" /> </p> <p> <h:commandButton value="Page3" action="page4?faces-redirect=true" /> </p> </h:form>
1. commandButton icin outcome olarak “page2” degerini verdik. Boylelikle ayni dizinde bulunan page2.xhtml sayfasina gidecektir.
2. commandButton icin goToPage3 metodunu cagiriyoruz , bu metot geriye “page3” bilgisini donmektedir. Dolayisiyla page3.xhtml sayfasina gidecektir.
3.commandButton da Page Redirection islemi icin faces-redirect=true parametresini ekliyoruz. Bunu daha once incelemistik.
page2.xhtml , page3.xhtml , page4.xhtml sayfalari basit olarak bir mesaj yazmaktadir. Burada tekrar bu dosyalar icin kodlari paylasmiyorum.
Farkli dizinlerde olan sayfalar icin / ile baslayip absoulute path bilgisi vermemiz gereklidir. Zaten bir path bilgisi / ile baslarsa bunun anlami absolute path demektir.
page5.xhtml
.... <h:form> <h3>Static Navigation</h3> <p> <h:commandButton value="Page6" action="/18.static1.navigation/folder2/page6.xhtml" /> <!-- burada farkli dizinde oldugu icin .xhtml dosya uzantisini eklememiz gereklidir. --> </p> </h:form> ....
Maillot Manchester City Pas Cher
Awesome blog. I enjoyed reading it! Thank you!