JSF – 14 – Static Navigation

Merhaba Arkadaslar.
Bu bolumde Navigation konusunu incelemeye baslayacagiz. Simdiye kadar basit olarak Navigation ‘i kullandik. Bu bolumde daha detayli olarak incelemeye baslayacagiz.
Oncelikle Static Navigation konusunu inceleyecegiz. Sonraki bolumde Dynamic Navigation konusunu inceleyecegiz.

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.

static navigation subfolder

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>
....

Kaynak kodlar : Injavawetrust.jsf

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *