JSP'de İfade Dili

İfade Dili (EL) Nedir?

İfade Dili (EL), depolanan verilerin erişilebilirliğini kolaylaştıran mekanizmadır. Java bean bileşeni ve istek, oturum ve uygulama gibi diğer nesneler vb.

JSP'de EL'de kullanılan aritmetik ve mantıksal operatörler gibi bir ifadeyi gerçekleştirmek için kullanılan birçok operatör vardır. JSP 2.0'da tanıtıldı

İfade Dilinin JSP Söz Dizimi (EL)

EL'in sözdizimi :$(ifade)

  • JSP'de parantezlerin içinde ne varsa, çıkış akışına gönderilen çalışma zamanında değerlendirilir.
  • İfade geçerli bir EL ifadesidir ve statik bir metinle karıştırılabilir ve daha büyük bir ifade oluşturmak için başka bir ifadeyle birleştirilebilir.

JSP'de ifadenin nasıl çalıştığına dair daha iyi bir fikir edinmek için aşağıdaki örneği göreceğiz. Bu örnekte, EL'nin iki sayıyı (1+2) toplamak ve sırasıyla çıktıyı almak için bir operatör olarak nasıl kullanıldığını göreceğiz.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP1</title>
</head>
<body>
<a>Expression is:</a>
${1+2}; 
</body>
</html>

Kodun Açıklaması:

  • Kod Satırı 11: İfade Dili (EL), iki sayıyı 1+2 eklediğimiz yerde ayarlanır, dolayısıyla çıktıyı 3 olarak verir.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Çıktı:

JSP İfade Dili

  • İfade: 3 (Sayılar olarak 1+2 eklenecek ve çıktı görevi görecektir)

Akış Kontrol İfadeleri:

JSP şunların gücünü sağlar: Java uygulamaya gömülecek. Tüm API'leri ve yapı taşlarını kullanabiliriz. Java in JSP programlama karar vermeyi ve döngü ifadelerini içeren kontrol akış ifadelerini içerir.

Aşağıda açıklanan iki tür akış kontrol ifadesi vardır;

  1. Karar Verme beyanları
  2. Döngü İfadeleri

Karar Alma Beyanları:

JSP'de karar verme ifadesi, koşul kümesinin doğru veya yanlış olmasına dayanır. Açıklama buna göre hareket edecek.

Aşağıda açıklanan iki tür karar verme beyanı vardır:

  1. Eğer – başka
  2. anahtar

JSP If-else

"If else" ifadesi tüm kontrol akışı ifadelerinin temelidir ve programa, yalnızca söz konusu testin doğru olarak değerlendirilmesi durumunda kodun belirli bir bölümünü yürütmesini söyler.

Bu koşul birden fazla koşulun doğru veya yanlış olup olmadığını test etmek için kullanılır.

  • Eğer ilk koşul doğruysa “if bloğu” yürütülür ve
  • yanlışsa "else bloğu" yürütülür

if – else ifadesinin sözdizimi:

If(test condition)
{
	 //Block of statements    
}
else
{
    //Block of statements
}

Bu örnekte, değişkeni alıp, değişkenin başlatılan değerle eşleşip eşleşmediğini kontrol ederek "if else" koşulunu test edeceğiz:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP2</title>
</head>
<body>
<%! int month=5; %>
<% if(month==2){ %>
<a>Its February</a>
<% }else{ %>
<a>Any month other than February</a>
<%} %>
</body>
</html>

Kodun açıklaması:

  • Kod Satırı 10: Ay adlı değişken, ifade etiketlerinde 5 olarak başlatılır
  • Kod Satırı 11: EL etiketlerinde ayın 2'ye eşit olup olmadığını belirten “if koşulu” bulunmaktadır (koşul burada doğru veya yanlış olarak test edilmektedir)
  • Kod Satırı 12: Ay değişkeninin 2 olduğu koşul doğruysa, çıktı akışına yazdırılacaktır
  • Kod Satırı 13-15: Yukarıdaki if koşulu başarısız olursa, diğer tüm durumlar için ifadenin çıkış akışına yazdırılacağı ve koşulun kapatılacağı else kısmına geçecektir.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Çıktı:

JSP If-else

  • Sahip olduğumuz ay 5 olduğundan bu #2'ye (Şubat) eşit değildir. Dolayısıyla, "Şubat dışındaki herhangi bir ay" çıktısını alırız (ay 5 olarak belirtilir, dolayısıyla aksi yürütülür)

JSP Anahtarı

Switch ifadesinin gövdesine “switch bloğu” adı verilir.

  • Anahtar durumu olası yürütme yollarının sayısını kontrol etmek için kullanılır.
  • Bir anahtar tüm veri türleriyle kullanılabilir
  • Switch ifadeleri birden fazla durum ve bir varsayılan durum içerir
  • İfadeyi değerlendirir ve ardından eşleşen durumu izleyen tüm ifadeleri yürütür

Switch ifadesi için sözdizimi:

switch (operator)
{
   Case 1:
       Block of statements
break;
   Case 2:
      Block of statements
break;


case n:
    Block of statements
break;
default:
  Block of statements
break;
}
  • Switch bloğu, iletilmesi gereken operatör olan bir parametreyle başlar ve
  • Daha sonra koşulu sağlayan ve operatörle hangisi eşleşirse o durumun yürütüldüğü farklı durumlar vardır.

Aşağıdaki örnekte, hafta değişkenini tanımladık ve bu, doğru olan durumla eşleştirildi. Bu durumda, hafta 2'dir, dolayısıyla 2nd durum eşleşiyor ve çıktı Salı:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP3</title>
</head>
<body>
<%! int week=2; %>
<% switch(week){
case 0:
    out.println("Sunday");
    break;
case 1:
    out.println("Monday");
    break;
case 2:
    out.println("Tuesday");
    break;
case 3:
    out.println("wednesday");
    break;
case 4:
    out.println("Thursday");
    break;
case 5:
    out.println("Friday");
    break;
    default:
        out.println("Saturday");
    }
%>
</body>
</html>

Kodun Açıklaması:

  • Kod Satırı 10: Week adlı değişken, ifade etiketlerinde 2 olarak başlatılır
  • Kod Satırı 11: EL etiketlerinde, haftanın parametre olarak iletildiği anahtar durumu başlatılır.
  • Kod Satırı 12 – 29: Durum 0'dan başlayarak durum 5'e kadar tüm durumlardan bahsedilmiş olup, burada hafta parametresinin değeri vakalarla eşleştirilir ve buna göre çıktı yazdırılır. Bu durumda değer 2 olduğundan bu durumda durum 2 yürütülecektir. Burada "out", oluşturulan yanıt için çıktı akışını yazan JSP'nin sınıfıdır ve "println" bu sınıfın bir yöntemidir.
  • Kod Satırı 30-32: Yukarıdaki tüm durumlar başarısız olursa, varsayılan kısma geçilecek ve yürütülecek; burada ifade çıkış akışına yazdırılacak ve koşul kapatılacaktır.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Çıktı:

JSP Anahtarı

  • Bu durumda çıktı 2. durum çağrıldığı gibi Salı günüdür.

Döngü İfadeleri

JSP Döngü için

Belirli bir koşul için öğeleri yinelemek için kullanılır ve üç parametresi vardır.

  • Değişken sayaç başlatıldı
  • Döngünün yürütülmesi gerekene kadarki koşul
  • Sayacın arttırılması gerekiyor

Döngü Söz Dizimi için:

For(inti=0;i<n;i++)
{
           //block of statements
}

Bu örnekte, sayaç verilen sayıdan küçük olana kadar yineleme yapan bir for döngüsüne sahibiz:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP4</title>
</head>
<body>
<%! int num=5; %>
<% out.println("Numbers are:"); 
for(int i=0;i<num;i++){
    out.println(i);
}%>
</body>
</html>

Kodun açıklaması:

  1. Kod Satırı 10: İfade etiketlerinde “num” adlı değişken 5 olarak başlatıldı
  2. Kod Satırı 11-14: EL etiketlerinde “out”, JSP'nin sınıfıdır ve “println”, çıkış akışında yazdırılan ve üç parametreye sahip for döngüsünün başlatıldığı out yöntemidir:
    • i değişkeni 0 olarak başlatılır,
    • i'nin yerel değişken num'dan küçük olacağı koşulu verilir,
    • Ve döngü her yinelendiğinde i artırılır.

“Forloop”un gövdesinde, i değişkenini yazdırdığımız println yöntemini kullanarak çıktı akışına yazdıran bir JSP sınıfı vardır.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Çıktı:

JSP Döngü için

  • Çıktı Numbers 0 1 2 3 4'tür. Bu örnekte, sayaç bir değişkene eşit olana kadar "for döngüsünün" çalıştırılması gerektiği koşulunu veriyoruz. Sayı 5'tir, dolayısıyla döngü 0'dan başlayacak ve 4'e kadar (5 kez) çalışacaktır. Dolayısıyla çıktı.

JSP While döngüsü

Tekrarlamak için kullanılır elemanları burada koşulun bir parametresine sahiptir.

Sözdizimi:

While(i<n)
{
      //Block of statements
}

Bu örnekte, günün sayaca eşit veya büyük olmasına kadar yineleme yapacak bir while döngümüz var:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP5</title>
</head>
<body>
<%! int day=2; int i=1; %>
<% while(day>=i){
    if(day==i){
        out.println("Its Monday");
        break;}
    i++;}
%>

</body>
</html>

Kodun açıklaması:

  • Kod Satırı 10: İfade etiketlerinde i adlı değişken 1 olarak başlatılır ve gün 2'dir
  • Kod Satırı 11-17: EL etiketlerinde, gün i değişkeninden büyük veya ona eşitse doğru olacak gibi bir koşul ayarlanana kadar yinelenecek "while döngüsü" vardır. (day>=i) "if koşulu" (gün i'ye eşittir) varsa ve "if koşulu" doğruysa, çıktı akışını yazdıracak ve while döngüsünden çıkacak, aksi takdirde i değişkeni artırılır ve döngü yinelenir.

Kodu çalıştırdığımızda aşağıdaki çıktıyı elde edeceğiz

Çıktı:

JSP While döngüsü

  • Bu kodun çıktısı “onun” olacaktır. Monday anlayışının sonucu olarak, buzdolabında iki üç günden fazla durmayan küçük şişeler elinizin altında bulunur.

JSP Operaları

JSP Operators, tarafından desteklenen aritmetik ve mantıksal operatörlerinin çoğunu destekler Java ifade dili (EL) etiketleri içinde. Sık kullanılan operatörler aşağıda belirtilmiştir:

Operatörler şunlardır:

. Bir fasulye özelliğine veya Harita girişine erişme
[] Bir diziye veya Liste öğesine erişme
() Değerlendirme sırasını değiştirmek için bir alt ifadeyi gruplandırın
+ Ek
- Bir değerin çıkarılması veya olumsuzlanması
* Çarpma
/ veya div Bölünme
% veya mod Modulo (kalan)
== veya eşdeğer Eşitlik testi
!= veya ne Eşitsizlik testi
< veya lt Şunun altında test edin:
> veya gt Şu değerden daha büyük olanı test edin:
<= veya le Daha az veya eşit olup olmadığını test edin
>= veya ge Büyük veya eşit olup olmadığını test edin
&& veya ve Mantıksal VE'yi test edin
|| yada yada Mantıksal VEYA testi
! ya da değil Tekli Boole tamamlayıcısı
boş Boş değişken değerlerini test edin

Bu örnekte,

  • Num1 ve num2 olmak üzere iki değişken tanımlıyoruz ve ardından num3 değişkenini alıyoruz; burada num1 ve num2'yi toplayıp num3'ü elde etmek için JSP operatörü + by'yi kullanıyoruz.
  • Daha sonra JSP operatörlerini (!= , >) kullanarak num3'ün 0'a eşit olup olmadığını kontrol ederiz ve
  • Daha sonra başka bir num4 değişkeni alıp num1 ve num2'yi çarparak num4'ü elde ederiz.

Tüm bu sayılar çıktımız olarak yazdırılmalıdır:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP6</title>
</head>
<body>
<% int num1=10; int num2 = 50;
   int num3 = num1+num2;
   if(num3 != 0 || num3 > 0){
       int num4= num1*num2;
       out.println("Number 4 is " +num4);
       out.println("Number 3 is " +num3);
    }%>
</body>
</html>

Kodun açıklaması:

  • Kod Satırı 10: İfade etiketlerinde num1 adlı değişken 10'a, num2 ise 50'ye başlatılır
  • Kod Satırı 11: num3 değişkeni num1 ve num2'nin toplamıdır, burada toplama operatörünü kullanıyoruz
  • Kod Satırı 12-16: EL etiketlerinde if koşulunda num3'ün 0'dan büyük olup olmadığını kontrol etmek için mantıksal operatör ve aritmetik operatörlerden oluşan OR koşulunu kullandık. OR herhangi bir koşul doğru olduğunda kullanılır, bu durumda "num1" ve "num2" iki sayısını çarptığımız ve "num4" çıktısını aldığımız "if case"e girecek ve çıktı akışını yazdıracaktır.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Çıktı:

JSP Operaları

  • İlk çıktı Sayı 4, 500'dür (num4*num1 olan num2 değişkeni)
  • İkinci çıktı ise Sayı 3, 60 (num3+num1 olan değişken num2)

ÖZET

  • JSP İfade Dili (EL), javabeans bileşenlerinde depolanan veriler için uygulamaya erişmeyi kolaylaştırır.
  • Ayrıca hem aritmetik hem de mantıksal ifadelerin oluşturulmasına olanak tanır.
  • EL etiketleri içerisinde tam sayıları kullanabiliriz. Kayan nokta sayıları, dizeler ve Boole değerleri.
  • JSP'de EL etiketlerini kullanarak döngüleri ve karar verme ifadelerini de kullanabiliriz.