JSF Ders02 - İlk JSF Projesi


  Eclipse üzerinden;

File -> New -> Dynamic Web Project yolu izlenir.
  • Dynamic Web Project ekranında Configuration kısmında JavaServer Faces seçilmelidir.
  • Bir sonraki ekranda otomatik web.xml dosyası oluşturulması için olan seçenek faydamıza olacaktır.
  • JSF Capabilities ekranında JSF Implementation Library olarak User, Type olarak Majorra ve Myfaces seçilmelidir. 
  • Aynı ekranda URL mapping pattern *.jsf olarak düzeltilmelidir.

Projeyi oluşturmadan önce proje hakkında bilinmesi gereken bazı noktalar.
  • ManagedBeanler java sınıflarıdır. Sınıf üzerine konulan @ManagedBean etiketi ile veya face-config.xml dosyasında listelenerek belirtilir.
  • ManagedBean sınıfındaki bir değişkene "#{sinifIsmi.degiskenIsmi}" şeklinde erişilebilir.Sınıf içerisinde bu değişkenlerin setter/getter metotları bulunmak zorundadır.
  • "#{sinifIsmi.degiskenIsmi}" ifadesinde sınıf isminin ilk harfi daima küçük olarak yazılır.
  • "#{sinifIsmi.degiskenIsmi}" ifadesinde değişkeni okurken o değişkenin getter metodu, yazarken ise setter metodu otomatik olarak çağrılır.
  • commandButton bean örneklemeyi sağlar. Butona tıklanıldığında hem bean örneklenir hem de commandButton'un "action" kısmında yer alan sayfaya yönlendirme işlemi yapılır.
  • Bir form ilk kez görüntülendiğinde input girişinde yer alan  "#{sinifIsmi.degiskenIsmi}" ifadesiyle o değikenin ilk değeri görüntülenir. commandButton butonu ile o değişkenin setter metodu çağrılarak yeni değeri atanmış olur.
  • Personel sınıfındaki gonder metodu içerisinde yer alan "?faces-redirect=true" ifadesi commandButtona tıklanıldığında urlnin ilgili sayfa ismini alması için kullanılır.Bu kullanılmazsa içerik değişecek ve fakat url değişmeyecektir.
  • @SessionScoped etiketi bean örneğinin session (oturum) boyunca bilgileri saklayacağı anlamına gelmektedir.
  • Personel sınıfının Serializable arayüzünü implement etmesi bilgilerin session (oturum) boyunca saklaması için gereklidir.
  • inputText bir giriş almaya, outputText ise bir çıkış göstermeye yarar.

Personel.java
package test;

import java.io.Serializable;

import javax.faces.bean.*;

@ManagedBean
@SessionScoped
public class Personel implements Serializable {

 private static final long serialVersionUID = 1L;

 private String ad;

 public void setAd(String ad) {
  this.ad = ad;
 }

 public String getAd() {
  return ad;
 }

 public String gonder() {
  return ("sayfa1?faces-redirect=true");
 }

}

index.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>index.xhtml</title>
</h:head>
<h:body>

 <h:form>
  Adinizi girin.<br />
  <h:inputText value="#{personel.ad}" /><br/><br/>
  <h:commandButton value="giris yap" action="#{personel.gonder}" />
 </h:form>

</h:body>
</html>

sayfa1.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>sayfa1.xhtml</title>
</h:head>
<h:body>

 <h1>Hosgeldin</h1>
 <h2>
  <h:outputText value="#{personel.ad}" />
 </h2>
</h:body>
</html>


JSF Java Server Faces
JSF Java Server Faces

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)