05_JSF_ManagedBean_Kullanımı

Merhaba arkadaşlar, bu yazımda managed bean den bahsedeceğim. Önce managed bean’in ne olduğundan bahsedelim.

Managed Bean Nedir?

Managed bean genel anlamda bizim Java Class’larımızdır. Yani açıklamak gerekirse bizim jsf sayfalarımızla(.xhml) sınıflarımız arasında bağlantı kurmamızı sağlar.

JSF de managed bean iki çeşit tanımlanır:

1-)Faces-config.xml dosyamızda

2-)Annotations kullanarak(@ManagedBean).

İlk önce yeni bir jsf projesi oluşturalım ve projemizi maven convert edelim. JSF dependency ekleyelim.

Daha sonra src klasörü altına Person ismiyle sınıf oluşturalım.

Şimdi index.xhtml sayfamızda bir form oluşturalım. Bu formumuzda isim ve soyisim girilebilmesi için 2 tane inputtext tanımlayalım.

Görüldüğü üzere inputtextlerimizin value değerleri boş. Şimdi burada biz Person sınıfımızı managed bean class olarak tanımlayacağız ve .xhtml sayfamızdan classımıza erişebileceğiz. Şimdi managed beanımızı tanımlayalım.

<h:panelGrid columns=”2″> => 2 sütundan oluşan bir tablo oluşturur.

1-)Faces-config.xml kullanarak Managed Bean Tanımlamak

WebContent/WEB-INF/Faces-config.xml dosyasını açalım. Ve beanımızı tanımlayalım.

Burada <faces-config> etiketleri arasında bean tanımlanır.

<managed-bean-name> => .xhtml sayfasında hangi adı kullanmak istediğimizi

<managed-bean-class> => Hangi sınıfın Bean sınıfı olacağını

<managed-bean-scope> => Yaşam döngüsünün ne kadar süreceğini belirttik.

Bu şekilde faces-config dosyasında managed beanımızı tanımlamış olduk.

2-)Annotations kullanarak

Hangi classı bean classı yapmak istiyorsak classın tanımlandığı satırın üstüne javax.faces.bean.ManagedBean sınıfından @ManagedBean tanımlaması ile managed bean tanımlamış olduk. Derslerde ben bu yöntemi kullanacağım.

Şimdi index.xhtml sayfasındaki inputtextlerin value değerlerini dolduralım:

Görüldüğü üzere #{beanName.DeğişkenYadaFonksiyonAdı} şeklinde tanımlayarak değişkenlere veriler yüklendi.

Bu yazıyı burada bitiriyorum diğer yazılarımda görüşmek üzere…

Print Friendly, PDF & Email

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.