JSTL (JSP Standart Etiket Kitaplığı) Eğitimi: Çekirdek & Özel Etiket Örnekleri

İçindekiler:

Anonim

JSTL, JSP'nin standart bir etiket kitaplığıdır. Burada farklı JSTL etiketlerinin kullanılmasının JSP kodlamasını nasıl kolaylaştıracağını göreceğiz.

Bu eğitimde öğreneceksiniz-

  • JSTL nedir
  • JSTL Çekirdeği
  • JSP Özel Etiketleri

JSTL nedir?

JSTL, Java sunucusu sayfaları standart etiket kitaplığı anlamına gelir ve ortak web geliştirme işlevselliği sağlayan özel JSP etiket kitaplıkları koleksiyonudur.

JSTL'nin Avantajları

  1. Standart Etiket : JSP sayfalarının taşınabilir işlevselliği için zengin bir katman sağlar. Bir geliştiricinin kodu anlaması kolaydır.
  2. Kod Düzgün ve Temiz : Komut dosyaları geliştiricinin kafasını karıştırırken, JSTL kullanımı kodu düzgün ve temiz hale getirir.
  3. Otomatik Javabeans Interospection Desteği : JSP betiklerine göre JSTL avantajına sahiptir. JSTL İfade dili, JavaBean kodunu çok kolay bir şekilde işler. Kapsamlı öznitelikler olarak alınan nesneleri indirmemize gerek yok. JSP komut dosyası kodunu kullanmak karmaşık olacaktır ve JSTL bu amacı basitleştirmiştir.
  4. İnsanlar için okuması daha kolay : JSTL, HTML'ye çok benzeyen XML tabanlıdır. Dolayısıyla geliştiricilerin anlaması kolaydır.
  5. Bilgisayarların anlaması daha kolay : Dreamweaver ve ön sayfa gibi araçlar giderek daha fazla HTML kodu üretiyor. HTML araçları, HTML kodunu biçimlendirmede harika bir iş çıkarır. HTML kodu, betik koduyla karıştırılır. JSTL, XML uyumlu etiketler olarak ifade edildiğinden, HTML oluşturmanın JSTL kodunu belge içinde ayrıştırması kolaydır.

JSTL Çekirdeği

Çekirdek etiketler, JSP'de en sık kullanılan etiketlerdir. Aşağıdakiler için destek sağlarlar

  • Yineleme
  • Koşullu mantık
  • İstisna yakala
  • url yönlendirme
  • Yönlendirme vb.

Temel etiketleri kullanmak için önce etiket kitaplığını tanımlamamız gerekir ve aşağıda bir etiket kitaplığı içeren sözdizimi vardır.

Sözdizimi:

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>

Buraya,

  • önek, tüm temel etiketleri tanımlamak için kullanılabilir ve
  • uri, içe aktarıldığı taglib kitaplığıdır

Bazı temel etiketleri ayrıntılı olarak görelim,

1. Çıkış:

  • Out etiketinde ifade sonucu görüntülenir
  • Doğrudan XML etiketlerinden çıkış yapabilir. Bu nedenle, gerçek etiketler olarak değerlendirilmezler

Sözdizimi:

  • Buradaki değer, çıktıya ilişkin bilgiyi temsil eder ve zorunludur
  • Varsayılan, bilgi vermede başarısızlıktır ve zorunlu değildir
  • escapeXML - XML ​​karakterlerinden kaçıyorsa doğrudur.

Misal:

Coretag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Temel Etiket JSP1 

Kodun açıklaması:

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir. Bu nedenle, tüm coretag'ler için bir önek olarak kullanılabilir.

Kod Satırı 12: Burada "c" önekiyle birlikte coretag kullanıyoruz ve bu çıktı, ifade etiketindeki değeri yazdıracaktır. Bu nedenle, çıktı adı olacaktır

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız:

Çıktı:

  • Değeri, çıkış akışında basılacak olan "out" çekirdek etiketinden bir ad olarak alıyoruz.

2. Yakala

  • Vücutta meydana gelen atılabilir istisnaları yakalar ve çıktı olarak gösterir.
  • Hataların giderilmesi ve yakalanması için kullanılır.

Sözdizimi:

Burada var, atılabilir istisnayı barındıracak değişkenin adını temsil eder.

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Temel Etiket JSP2 <% int num = 10/0; %>İstisna: $ {guruException}

Kodun açıklaması:

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir

Kod Satırı 11-13: Coretag yakalama, istisnayı yakalamak ve istisnayı yazdırmak için kullanılır. Burada istisna, 10/0 olduğunda ve bu istisna "guruException" adına sahip olduğunda ortaya çıkar.

Kod Satırı 14: "guruException" yazdırıyoruz.

Kodu çalıştırdığınızda, aşağıdaki çıktıyı alacaksınız:

Çıktı:

  • Aritmetik İstisnayı sıfır olarak alıyoruz ve çıktıda "guruException" değişkeni kullanılarak yazdırılıyor

3. İçe aktar

  • JSP include eyleminde yaptığımız gibi başka bir dosya içeriğini bir JSP sayfasına aktarabiliriz.
  • Buraya URL'yi de ekleyebiliriz ve içerik o sayfada görüntülenecektir.

Sözdizimi:

Burada var, dosya adını / uri'yi tutacak bir tanımlayıcı olan bir değişken adıdır.

uri, göreli dosya adı veya idrar adıdır.

coretag_jsp31.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Temel Etiket JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Başlığı buraya ekleyin  Dosya içe aktarıldıktan sonra görüntülenir 

Kodun açıklaması:

Coretag_jsp31.jsp

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir

Kod Satırı 11-12: Burada coretag_jsp32.jsp dosyasını içe aktarma etiketini kullanarak bu dosyaya aktarıyoruz

Code Line13: Burada coretag_jsp32.jsp dosyasını etiketini kullanarak yazdırıyoruz.

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız.

Çıktı:

  • Coretag_jsp32, bu dosya coretag_jsp31.jsp içine içe aktarılırken çıktıda yazdırılır.

4. her biri için

  • İfadeler dizisindeki elemanların sayısını yinelemek için kullanılır.
  • Java forloop ile aynıdır.

Sözdizimi:

  • Burada var, sayaç adını tutacak değişken adını temsil eder
  • Başlama, sayaç başlangıç ​​değerini temsil eder
  • End, son değerini temsil edecek

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Temel Etiket JSP4 

Kodun açıklaması:

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir

Kod Satırı 11-13: Burada değişken adı "gurucount" olan "forEach" döngüsünü kullanıyoruz, bu döngü 5 olarak saymaya ve 10 olarak son saymaya başlıyor. 5'den 10'a kadar sayıları olan değişken gurucount yazdırıyoruz.

Kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız

Çıktı:

  • Aldığımız çıktı 5'ten 10'a başlıyor.

5. Eğer

  • Test koşulları için kullanılır.
  • Etiket, buna bağlı olarak doğru olup olmadığını test etmek için kullanılırsa, kod bloğu yürütülür.

Sözdizimi:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Temel Etiket JSP5 

Kodun açıklaması:

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir

Code Line 11: Burada count olarak adlandırılan değişkeni 100 olarak ayarlıyoruz

Kod Satırı 12-14: Burada sayının 100'e eşit olup olmadığını kontrol ettiğimiz "if koşulunu" kullanıyoruz. 100'e eşitse çıktıyı "Sayım 100" olarak alıyoruz.

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız

Çıktı:

  • "Eğer" koşulu doğru olduğu için çıktıyı "Sayım 100" olarak alıyoruz.

6. yönlendirme:

  • Bu etiketin göreli URL'sini sağlayarak mevcut sayfayı başka bir URL'ye yeniden yönlendirmek için kullanılır.
  • Bağlama göre URL'leri destekler

Sözdizimi:

Burada url, yönlendirilmesi gereken göreli url ve yerel web uygulamasının bağlam adıdır.

Misal:

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> Temel Etiket JSP6 

Kodun açıklaması:

Kod Satırı 3: Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek 'c'dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir

Kod Satırı 11: Burada urlname'yi belirttiğimiz "yönlendirme etiketi" kullanıyoruz ve o sayfaya tıkladığımızda yönlendirme için verilen siteye yönlendiriyor.

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız;

Çıktı:

  • Coretag_jsp6.jsp tarafından yönlendirilen çıktı guru99.com url'sini alıyoruz

JSP Özel Etiketleri

  • Kullanıcı tanımlı bir JSP dil unsurudur.
  • JSP bir sunucu uygulamasına çevrildiğinde, özel etiket, bir nesne üzerinde işlem yapan ve etiket işleyici olarak adlandırılan bir sınıfa dönüştürülür.
  • Sunucu uygulaması yürütüldüğünde bu eylemler web kapsayıcısı tarafından çağrılır.
  • Kullanıcı tanımlı özel etiketi oluşturmak için, SimpleTagSupport'u genişletecek ve doTag () yöntemini geçersiz kılmak zorunda olan etiket işleyicisini oluşturmamız gerekir.
  • Sınıf dosyasını TLD'de eşleştirmemiz gereken yerde TLD oluşturmamız gerekir.

JSP'de özel etiketlerin avantajları:

  • Taşınabilir - Bir etiket kitaplığında açıklanan eylem herhangi bir JSP kapsayıcısında kullanılabilir olmalıdır.
  • Basit - Deneyimsiz kullanıcılar bu mekanizmayı anlayabilmeli ve kullanabilmelidir. JSP işlevselliği sağlayıcıları, bunu kullanıcılara eylem olarak sunmayı kolay bulmalıdır.
  • Etkileyici - Mekanizma, iç içe geçmiş eylemler, eylem gövdeleri içindeki komut dosyası oluşturma öğeleri, komut dosyası değişkenlerinin oluşturulması, kullanılması ve güncellenmesi dahil olmak üzere çok çeşitli eylemleri desteklemelidir.
  • Farklı komut dosyası dillerinden kullanılabilir - JSP belirtimi şu anda yalnızca Java programlama dilinde betikler için anlambilim tanımlasa da, diğer kodlama dillerinin olasılığını açık bırakmak istiyoruz.
  • Mevcut kavramlar ve makineler üzerine inşa edildi - Başka yerlerde whatexists'i yeniden keşfetmek istemiyoruz. Ayrıca, önceden tahmin edebildiğimiz zaman gelecekteki çatışmalardan kaçınmak istiyoruz.

Sözdizimi:

TestGuru etiketi oluşturduğumuzu ve doTag () yöntemini geçersiz kılacak olanağandlertestTag sınıfını kullanabiliriz.

Class testTag extends SimpleTagSupport{ public void doTag()}

Ayrıca, bu testTag sınıfını TLD'de (Etiket Kitaplığı Tanımlayıcısı) eşlememiz gerekecek, çünkü JSP kapsayıcısı, sınıf dosyası ile TLD dosyasında bahsedilen uri arasında otomatik olarak bir eşleme oluşturacaktır.

JSP Etiket Arayüzü

  • Bu sınıfın SimpleTagSupport sınıfını genişletmesi gerekecektir.
  • Bu sınıf, SimpleTagSupport sınıfının bir parçası olan doTag () yöntemini geçersiz kılmak zorunda kalacaktır (geçersiz kılma, üst sınıftan miras alınan bir yöntemdir).
  • Bu arayüz, JSPTag arayüzünün bir alt arayüzüdür.
  • Etiketin başında ve sonunda gerçekleştirilecek yöntemler sağlar.
  • Ayrıca, bu sınıfı TLD'de, yani Etiket Kitaplığı tanımlayıcısında eşlememiz gerekir.

Aşağıdaki örnekte düşünüyoruz

Etiket Arayüzü Yöntemi

  • doTag (), etiketin içeriğine sahip olacak, geçersiz kılmamız gereken bir yöntemdir.
  • GetJSPContext () kullanarak mevcut JSP Bağlamını alır

Misal:

Customtag_jsp1.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib prefix = "ex" uri = "WEB-INF / custom.tld"%> Özel Etiket <ör: guruTag />

Custom.tld

 1.0  2.0  TLD'yi test et  guruTag  demotest.guruTag  boş 

guruTag.java (TagHandler)

paket demotest;içe aktar javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;import java.io. *;public class guruTag, SimpleTagSupport'u genişletir {public void doTag () JspException, IOException atar{JspWriter çıkışı = getJspContext (). GetOut ();out.println ("Guru Etiketi");}}

Kodun açıklaması:

guruTag.java (TagHandler)

Code Line 6: guruTag sınıfı, javax.servlet.JSP jar dosyasında bulunan SimpleTagSupport sınıfını genişletiyor

Kod Satırı 7: Burada, JspException ve IOException atan doTag () yöntemini geçersiz kılıyoruz.

Kod Satırı 9-10: Bu yöntemde kod, çağrılacak özel etikete gömülecektir. Bir JspWriter nesnesi alıyoruz ve bu "Guru Etiketi" yazdıracak.

Custom.tld

Kod Satırı 6: Burada özel etiketin adı "guruTag" dır.

Code Line 7: Tag sınıfı, taghandlerclass, yani guruTag.java'dır. Dosya konumunun dizin yolunu içeren işleyici dosyasının tam yolunu alır.

Customtag_jsp1.jsp

Kod Satırı 3 : Bu taglib öneki tüm etiketler için gereklidir ve eklenen önek "ex" dir, bu nedenle tüm coretag'ler için bir önek olarak kullanılabilir ve uri, etiket işleyiciyi eşleyen custom.tld'dir.

Kod Satırı 11: Burada, işleyici sınıfı doTag () yöntemini çağıracak ve içindeki kod çalıştırılacak olan özel "guruTag" etiketini tanımlıyoruz.

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız

Çıktı:

  • Çıktıyı, doTag () yöntemini geçersiz kılan ve çıktı olarak "Guru Etiketi" yazan guruTag.java yani TagHandler'dan "GuruTag" olarak alıyoruz.

Özet:

  • Bu bölümde, temel etiketler ve özel etiketler yaptığımız JSP standart etiket kitaplığını öğrendik.
  • Çekirdek etiketler, JSP'de temel amaçlar için kullanılan etiketler olan for, if, redirect, import, catch etiketlerini içerir.
  • Ayrıca, etiketleri tanımlayabileceğimiz ve JSP'de kullanabileceğimiz özel etiketler yaptık.