Tutorial JSTL (JSP Standard Tag Library): Core & Contoh Tag Kustom

JSTL adalah pustaka tag standar JSP. Di sini kita akan melihat bagaimana menggunakan tag JSTL yang berbeda akan membuat pengkodean JSP lebih mudah.

Dalam tutorial ini, Anda akan belajar-

  • Apa itu JSTL
  • JSTL Core
  • Tag Kustom JSP

Apa itu JSTL?

JSTL adalah singkatan dari pustaka tag standar halaman server Java, dan ini adalah kumpulan pustaka tag JSP kustom yang menyediakan fungsionalitas pengembangan web umum.

Keuntungan JSTL

  1. Tag Standar : Ini menyediakan lapisan kaya dari fungsionalitas portabel halaman JSP. Sangat mudah bagi pengembang untuk memahami kode tersebut.
  2. Kode Rapi dan Bersih : Sebagai script yang membingungkan pengembang, penggunaan JSTL membuat kode menjadi rapi dan bersih.
  3. Dukungan Antarmuka Javabeans Otomatis : Ini memiliki keunggulan JSTL dibandingkan skrip JSP. Bahasa Ekspresi JSTL menangani kode JavaBean dengan sangat mudah. Kita tidak perlu merendahkan objek, yang telah diambil sebagai atribut cakupan. Menggunakan kode scriptlets JSP akan menjadi rumit, dan JSTL telah menyederhanakan tujuan itu.
  4. Lebih mudah bagi manusia untuk membaca : JSTL didasarkan pada XML, yang sangat mirip dengan HTML. Karenanya, mudah bagi pengembang untuk memahaminya.
  5. Lebih mudah bagi komputer untuk memahami : Alat seperti Dreamweaver dan halaman depan menghasilkan lebih banyak kode HTML. Alat HTML melakukan pekerjaan yang baik dalam memformat kode HTML. Kode HTML dicampur dengan kode skrip. Karena JSTL dinyatakan sebagai tag yang sesuai dengan XML, mudah bagi pembuatan HTML untuk mengurai kode JSTL di dalam dokumen.

JSTL Core

Tag inti adalah tag yang paling sering digunakan di JSP. Mereka memberikan dukungan untuk

  • Pengulangan
  • Logika bersyarat
  • Tangkap pengecualian
  • url maju
  • Alihkan, dll.

Untuk menggunakan tag inti kita perlu mendefinisikan pustaka tag terlebih dahulu dan di bawah ini adalah sintaks untuk menyertakan pustaka tag.

Sintaks:

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

Sini,

  • awalan dapat digunakan untuk menentukan semua tag inti dan
  • uri adalah pustaka taglib tempat ia diimpor

Mari kita lihat beberapa tag inti secara mendetail,

1. Keluar:

  • Hasil ekspresi ditampilkan di tag keluar
  • Itu bisa langsung lolos dari tag XML. Karenanya, mereka tidak dievaluasi sebagai tag yang sebenarnya

Sintaksis:

  • Di sini nilai mewakili informasi ke keluaran, dan itu wajib
  • Default adalah kegagalan untuk mengeluarkan informasi, dan itu tidak wajib
  • escapeXML - Memang benar jika lolos dari karakter XML.

Contoh:

Coretag_jsp1.jsp

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

Penjelasan kode:

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan awalan yang ditambahkan adalah 'c'. Karenanya, ini dapat digunakan sebagai awalan untuk semua coretag.

Baris Kode 12: Di sini kita menggunakan coretag dengan awalan "c" dan ini akan mencetak nilai di tag ekspresi. Karenanya, keluaran akan menjadi nama

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut:

Keluaran:

  • Kami mendapatkan nilai sebagai nama dari tag inti "keluar" yang akan dicetak dalam aliran keluaran.

2. Tangkap

  • Ia menangkap semua pengecualian yang dapat dibuang yang terjadi di tubuh dan ditampilkan sebagai keluaran.
  • Ini digunakan untuk menangani kesalahan dan menangkapnya.

Sintaksis:

Di sini var mewakili nama variabel, yang akan menampung pengecualian yang dapat dibuang.

Contoh:

<% @ 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"%> Core Tag JSP2 <% int num = 10/0; %>Pengecualiannya adalah: $ {guruException}

Penjelasan kode:

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan prefiks yang ditambahkan adalah 'c' sehingga dapat digunakan sebagai prefiks untuk semua coretag

Baris Kode 11-13: Coretag catch digunakan untuk menangkap pengecualian dan mencetak pengecualian. Di sini pengecualian dimunculkan ketika 10/0 dan pengecualian itu memiliki nama "guruException".

Baris Kode 14: Kami sedang mencetak "guruException".

Saat Anda menjalankan kode, Anda akan mendapatkan output berikut:

Keluaran:

  • Kami mendapatkan Pengecualian Aritmatika sebagai / dengan nol, dan itu dicetak dalam output menggunakan variabel "guruException"

3. Impor

  • Kita dapat mengimpor konten file lain ke halaman JSP seperti yang kita lakukan di JSP termasuk tindakan.
  • Di sini kita juga bisa memasukkan URL dan isinya akan ditampilkan di halaman itu.

Sintaksis:

Di sini var adalah nama variabel yang merupakan pengenal, yang akan menampung nama file / uri.

uri adalah nama file atau nama urin relatif.

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"%> Core Tag JSP 31 

Coretag_jsp32.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Sisipkan judul di sini  File diputar setelah diimpor 

Penjelasan kode:

Coretag_jsp31.jsp

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan prefiks yang ditambahkan adalah 'c' sehingga dapat digunakan sebagai prefiks untuk semua coretag

Baris Kode 11-12: Di sini kita mengimpor file coretag_jsp32.jsp ke file ini menggunakan tag impor

Baris Kode13: Di sini kami mencetak file coretag_jsp32.jsp menggunakan tag keluar.

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut.

Keluaran:

  • Coretag_jsp32 dicetak dalam output karena file ini diimpor di coretag_jsp31.jsp.

4. forEach

  • Ini digunakan untuk mengulang jumlah elemen dalam rangkaian pernyataan.
  • Ini sama dengan forloop Java.

Sintaksis:

  • Di sini var mewakili nama variabel yang akan menyimpan nama counter
  • Begin mewakili nilai counter start
  • Akhir akan mewakili nilai akhirnya

Contoh:

<% @ 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"%> Core Tag JSP4 

Penjelasan kode:

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan prefiks yang ditambahkan adalah 'c' sehingga dapat digunakan sebagai prefiks untuk semua coretag

Baris Kode 11-13: Di sini kita menggunakan loop "forEach" di mana nama variabelnya adalah "gurucount", yang telah mulai dihitung sebagai 5 dan akhirnya dihitung sebagai 10. Kami mencetak gurucount variabel yang memiliki angka mulai dari 5 hingga 10.

Saat Anda menjalankan kode, Anda mendapatkan output berikut

Keluaran:

  • Output yang kami dapatkan mulai dari 5 hingga 10.

5. Jika

  • Ini digunakan untuk kondisi Pengujian.
  • Jika tag digunakan untuk menguji suatu kondisi apakah benar atau tidak berdasarkan ini, blok kode akan dieksekusi.

Sintaksis:

<% @ 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"%> Core Tag JSP5 

Penjelasan kode:

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan prefiks yang ditambahkan adalah 'c' sehingga dapat digunakan sebagai prefiks untuk semua coretag

Baris Kode 11: Di sini kita mengatur variabel bernama hitungan ke 100

Baris Kode 12-14: Di sini kita menggunakan "jika kondisi" di mana kita memeriksa apakah hitungannya sama dengan 100. Ini sama dengan 100 maka kita mendapatkan keluaran sebagai "Hitungannya 100."

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut

Keluaran:

  • Karena kondisi "jika" adalah benar, kita mendapatkan keluaran sebagai "Hitungannya 100".

6. mengarahkan ulang:

  • Ini digunakan untuk mengarahkan halaman saat ini ke URL lain dengan memberikan URL relatif dari tag ini.
  • Ini mendukung URL relatif konteks

Sintaksis:

Di sini url adalah url relatif yang harus diarahkan dan nama konteks aplikasi web lokal.

Contoh:

<% @ 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"%> Core Tag JSP6 

Penjelasan kode:

Baris Kode 3: Awalan taglib ini diperlukan untuk semua tag dan prefiks yang ditambahkan adalah 'c' sehingga dapat digunakan sebagai prefiks untuk semua coretag

Baris Kode 11: Di sini kita menggunakan "tag redirect", di mana kita menentukan nama url, dan ketika kita mengklik halaman itu, itu mengarahkan ke situs yang telah diberikan untuk pengalihan.

Ketika Anda menjalankan kode di atas, Anda mendapatkan output berikut;

Keluaran:

  • Kami mendapatkan url guru99.com keluaran yang diarahkan oleh coretag_jsp6.jsp

Tag Kustom JSP

  • Ini adalah elemen bahasa JSP yang ditentukan pengguna.
  • Ketika JSP diterjemahkan ke dalam servlet, tag kustom diubah menjadi kelas yang mengambil tindakan pada objek dan disebut sebagai penangan tag.
  • Tindakan tersebut saat servlet dijalankan dipanggil oleh penampung web.
  • Untuk membuat tag khusus yang ditentukan pengguna, kita perlu membuat penangan tag yang akan memperluas SimpleTagSupport dan harus mengganti metode doTag ().
  • Kita perlu membuat TLD di mana kita perlu memetakan file kelas di TLD.

Keuntungan dari tag kustom di JSP:

  • Portabel - Tindakan yang dijelaskan di pustaka tag harus dapat digunakan di penampung JSP apa pun.
  • Sederhana - Pengguna yang tidak berpengalaman harus dapat memahami dan menggunakan mekanisme ini. Para vendor fungsionalitas JSP harus merasa mudah untuk membuatnya tersedia bagi pengguna sebagai tindakan.
  • Ekspresif - Mekanisme harus mendukung berbagai tindakan, termasuk tindakan bertingkat, elemen skrip di dalam badan tindakan, pembuatan, penggunaan, dan pembaruan variabel skrip.
  • Dapat digunakan dari bahasa skrip yang berbeda - Meskipun spesifikasi JSP saat ini hanya mendefinisikan semantik untuk skrip dalam bahasa pemrograman Java, kami ingin membiarkan kemungkinan bahasa skrip lainnya terbuka.
  • Dibangun di atas konsep dan mesin yang ada - Kami tidak ingin menemukan kembali apa yang ada di tempat lain. Selain itu, kami ingin menghindari konflik di masa depan kapan pun kami dapat memprediksinya

Sintaksis:

Pertimbangkan kita membuat tag testGuru dan kita bisa menggunakan kelasetaghandlertestTag, yang akan menggantikan metode doTag ().

Class testTag extends SimpleTagSupport{ public void doTag()}

Selain itu, kita harus memetakan kelas testTag ini dalam TLD (Tag Library Descriptor) karena penampung JSP akan secara otomatis membuat pemetaan antara file kelas dan uri yang telah disebutkan dalam file TLD.

Antarmuka Tag JSP

  • Kelas ini harus memperluas kelas SimpleTagSupport.
  • Kelas ini harus mengganti metode doTag () yang merupakan bagian dari kelas SimpleTagSupport (menimpa adalah metode yang diwarisi dari kelas induk).
  • Antarmuka ini adalah sub antarmuka dari antarmuka JSPTag.
  • Ini memberikan metode untuk dilakukan di awal dan akhir tag.
  • Juga, kita perlu memetakan kelas ini dalam TLD yaitu deskriptor Tag Library

Kami sedang mempertimbangkan dalam contoh di bawah ini

Metode Antarmuka Tag

  • doTag () adalah metode yang perlu kita ganti yang akan memiliki konten untuk tag.
  • Dibutuhkan Konteks JSP saat ini menggunakan getJSPContext ()

Contoh:

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"%> Tag Kustom 

Custom.tld

 1.0  2.0  Uji TLD  guruTag  demotest.guruTag  kosong 

guruTag.java (TagHandler)

paket demotest;impor javax.servlet.jsp.tagext. *;import javax.servlet.jsp. *;impor java.io. *;public class guruTag memperluas SimpleTagSupport {public void doTag () melempar JspException, IOException{JspWriter out = getJspContext (). GetOut ();out.println ("Guru Tag");}}

Penjelasan kode:

guruTag.java (TagHandler)

Baris Kode 6: kelas guruTag memperluas kelas SimpleTagSupport yang ada di jar javax.servlet.JSP

Baris Kode 7: Di sini kita mengganti metode doTag () yang melempar JspException dan IOException.

Baris Kode 9-10: Dalam metode ini, kode akan disematkan ke tag khusus yang akan dipanggil. Kami mengambil objek JspWriter, dan itu akan mencetak "Guru Tag."

Custom.tld

Baris Kode 6: Di sini nama tag khusus adalah "guruTag."

Baris Kode 7: Kelas tag adalah taghandlerclass, yaitu guruTag.java. Dibutuhkan path lengkap dari file handler yang mencakup path direktori dari lokasi file tersebut.

Customtag_jsp1.jsp

Baris Kode 3 : Awalan taglib ini diperlukan untuk semua tag dan awalan yang ditambahkan adalah 'ex' sehingga dapat digunakan sebagai awalan untuk semua coretags dan uri adalah custom.tld yang memetakan penangan tag.

Baris Kode 11: Di sini kita mendefinisikan tag kustom "guruTag", yang akan memanggil metode doTag () kelas handler dan kode di dalamnya akan dieksekusi.

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut

Keluaran:

  • Kami mendapatkan keluaran sebagai "GuruTag" dari guruTag.java yaitu TagHandler, yang menggantikan metode doTag () dan yang mencetak "Guru Tag" sebagai keluaran.

Ringkasan:

  • Di bagian ini, kita belajar tentang pustaka tag standar JSP tempat kami melakukan tag inti dan tag kustom.
  • Tag inti termasuk untuk, jika, mengarahkan, mengimpor, menangkap tag yang merupakan tag yang digunakan untuk tujuan dasar di JSP.
  • Juga, kami melakukan tag kustom di mana kami dapat menentukan tag dan menggunakannya di JSP

Artikel yang menarik...