Bilal Koçoğlu/ Şubat 23, 2019/ JSP

JSP Action Tags
(Bean)

Merhaba arkadaşlar bean etiketlerinin kullanımına başlamadan önce bean sınıfları nedir, nerelerde, nasıl kullanabiliriz bunlardan bahsetmek istiyorum. Önceklikle bir bean sınıfında bulunması gereken özellikleri sıralayalım.

  • Parametre almayan(no args) bir yapıcı methoda(constructor) sahip olmalıdır.
  • Serializable arabirimizi uygulamalıdır.
  • Sınıf içinde tanımlanan değişkenlerin get-set methodları tanımlı olmalıdır.

Bean sınıfları Java projelerinde okunabilirliği ve geliştirmeyi kolaylaştırır. İstenilen durumlarda birden fazla nesneyi içinde bulundurarak işlem yapmamızı kolaylaştırır. Şimdi örnek bir bean classı görelim.

user.java

Kullanıcıdan bu şekilde username ve password nesnesini ayrı ayrı almak yerine user sınıfı içinde almak hem projenin bakımını kolaylaştıracak, hem de daha az kod ile işlem yapmamızı sağlayacaktır.

jsp:useBean Action Tag

Yukarıda oluşturduğumuz user sınıfını bir servlette kullanmak istersek ondan bir nesne oluşturmamız gerektiğini biliyoruz. Bu işlemi bir jsp sayfasında yapmak istediğimizde ise jsp:useBean etiketini kullanmamız gerekir. Bu etiket eğer user nesnesi oluşturulmuşsa onu getirir, oluşturulmamışsa yeni bir user nesnesi oluşturur. Syntax şu şekildedir;

<jsp:useBean id=”nesneAdı” scope=”page | request | session | application” class=”paketAdi.SınıfAdi” type=”paketAdi.SınıfAdi” beanName=”paketAdi.SınıfAdi | <%= expression >”>

</jsp:useBean>

Görüldüğü gibi etiket çok fazla ek özelliğe sahiptir. Bu özellikleri açıklayalım.

id

Kullanılacak bean nesnesinin adıdır.

scope

Bean nesnesinin kapsamını temsil eder. page, session, application veya request değerlerini alabilir. Varsayılan değeri ‘page’dir.

  • page : Bu bean nesnesinin page nesnesi içinde kullanılacağını belirtir. Scope özelliğinin varsayılan değeridir.
  • request : Bu nesneyi aynı requesti işleyen herhangi bir JSP sayfasında kullanabileceğimizi ifade eder. Kapsam olarak düşünürsek pageden daha geniştir.
  • session : Bu nesnenin geçerli session nesnesini işleyen tüm sayfalarda kullanılabileceğini ifade eder. Kapsam olarak requestten daha geniştir.
  • application : Bu nesnenin proje içindeki tüm jsp sayfaları tarafından kullanılabileceğini ifade eder. scope özelliğine verilebilecek en geniş kapsamlı değerdir.

class

Belirtilen bean sınıfından bir nesne oluşturur. Dikkat edilmesi gereken nokta verilen sınıfın yukarıda bahsettiğimiz bean sınıfının özelliklerinin tümünü barındırıyor olması gerekir. Yoksa hata alırız.

type

scope özelliğinde belirtilen kapsam içinde aradığımız nesne mevcut ise bunu çağırır. Bu özelliği class veya beanName özelliği olmadan kullanırsak bean nesnesi çağırılmaz ve hata alırız.

beanName

java.beans.Beans.instantiane() methodunu kullanarak bean nesnesini oluşturur.

Şuan get-set property etiketlerini incelemediğimiz için, içinde sadece bir metod bulunan basit bir bean nesnesi oluşturalım ve jsp sayfası içinde nasıl kullanıldığını örnek kod üzerinde inceleyelim.

calculator.java
index.jsp

jsp:setProperty and jsp:getProperty Action Tag

jsp:setProperty ve jsp:getProperty, bean sınıflarını kullanarak web uygulamaları geliştirirken kullanabileceğimiz action etiketleridir. Yukarıda da bahsettiğimiz gibi bean sınıfları web uygulamaları geliştirirken gerek yeniden kullanılabilirliği gerek yazdığımız kodun bakımını kolaylaştırması açısından önemli bir bileşendir.

Sadece methodlardan oluşan bean sınıflarının kullanımını yukarıda göstermiştik. Şimdi ise bean sınıfı içinde tanımlı değişkenlere jsp sayfasında nasıl erişildiğini inceleyeceğiz. Bu etiketlerin kullanılabilmesi için tanımlı değişkenlerin get-set methodların tanımlı olması gerektiğinin altını tekrar çiziyorum. Bu etiketlerin syntaxlarından bahsedip son bir örnekle konuyu tamamlayacağız.

jsp:setProperty

<jsp:setProperty name=”instanceOfBean” property= “*”   |   
property=”propertyName” param=”parameterName”  |   
property=”propertyName” value=”{ string | <%= expression %>}”   
/> 

jsp:setPtoperty Syntax

<jsp:setProperty name=”bean” property=”*” />  

Bean sınıfınının tüm değerlerini set etmemiz gerekirse kullanmamız gereken syntax

<jsp:setProperty name=”bean” property=”username” /> 

Bean sınıfı içinde sadece username alanını set etmemiz gerektiğinde kullanmamız gereken syntax

<jsp:setProperty name=”bean” property=”username” value=”Kumar” /  

Bean sınıfı içindeki herhangi bir alana statik bir değer atamak istediğimizde kullanmamız gereken syntax

jsp:getProperty

<jsp:getProperty name=”instanceOfBean” property=”propertyName” />  

jsp:getProperty Syntax
user.java
index.jsp
register.jsp

Kodu yazarken de anlayacağınız üzere bean sınıfı kullanmak geliştirme aşamasını hızlandırmakla beraber kodun okunabilirliğini artırmaktadır. Konunun sonuna geldik soru ve değerlendirmelerinizi yoruma bırakırsanız sevirim.

İyi çalışmalar.

Share this Post

Leave a Comment

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

*
*