7.1 c:jika, c:untukSetiap
Semua orang menyukai kode menggunakan tag alih-alih kode Java, jadi mereka memutuskan untuk memperluas cakupannya. Tetapi pemrograman tidak terbatas pada membuat objek dan membaca propertinya. Anda perlu memanggil metode objek, bekerja dengan database dan layanan lainnya. Apa yang harus dilakukan?
Anda hanya perlu merepresentasikan setiap pernyataan Java sebagai sebuah tag. Apakah if
, akan <if>
, adalah for
, akan , <for>
dan seterusnya. Oke, oke, bercanda, bukan seperti itu. Ya, tidak mungkin orang benar-benar memutuskan untuk melakukan itu. Tapi tidak, mungkin!
Pemrogram diizinkan untuk menambahkan tag apa pun ke kode. Pada prinsipnya, tidak ada yang perlu dikhawatirkan - JSP adalah standar yang dapat diperluas. Tapi mereka melangkah lebih jauh dan merilis JSP Standard Tag Library - JSTL. Halaman dengan itu terlihat seperti ini:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> JSTL Example</title>
</head>
<body>
<c:set var = "salary" scope = "session" value = "${2000*5}"/>
<c:if test = "${ salary > 2000}">
<p>My salary is: <c:out value = "${salary}"/><p>
</c:if>
</body>
</html>
Sangat mungkin Anda akan menemukan kode seperti itu di proyek mendatang, di sana saya akan memberikan beberapa penjelasan.
7.2 Fungsi JSTL
Fungsi JSTL terbagi dalam 5 kategori:
- Tag utama;
- Memformat tag;
- Tag SQL;
- tag XML;
- Fungsi pemanggilan.
Saya tidak akan mencantumkan semuanya, tetapi saya akan mencantumkan yang paling populer. Mari kita mulai dengan tag utama:
1 | <c:out> |
Menghasilkan ekspresi yang ditentukan - setara dengan <%= %> |
2 | <c:set> |
Menulis hasil ekspresi ke variabel |
3 | <c:remove> |
Menghapus variabel |
4 | <c:catch> |
Menangkap pengecualian |
5 | <c:if> |
analogi jika |
6 | <c:choose> |
saklar analog |
7 | <c:when> |
Digunakan bersama dengan memilih |
8 | <c:otherwise> |
Digunakan bersama dengan memilih |
9 | <c:import> |
Memungkinkan Anda memasukkan konten ke dalam kode (setara dengan arahan impor) |
10 | <c:forEach> |
untuk setiap putaran |
sebelas | <c:param> |
Memungkinkan Anda menyetel opsi untuk impor |
12 | <c:redirect> |
Redirect |
13 | <c:url> |
Membuat URL dengan parameter |
Saya akan memberikan satu contoh saja dan menyelesaikannya. Pada prinsipnya, sangat mungkin untuk membaca kode tersebut setelah beberapa keterampilan. Tapi saya tidak menyarankan menulis.
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title> Each Tag Example&</title>
</head>
<body>
<c:forEach var = "i" begin = "1" end = "5">
Item <c:out value = "${i}"/><p>
</c:forEach>
</body>
</html>
Coba pikirkan, kita menulis kode Java dalam bentuk tag, sehingga parser JSP kemudian akan mengubah tag tersebut menjadi kode Java. Sesuatu di dunia ini telah salah.
Omong-omong, Anda dapat menulis perpustakaan tag Anda sendiri. Saya bahkan pernah bekerja di proyek di mana mereka berada. Pengalaman yang luar biasa. Segera setelah ada perubahan yang dilakukan pada perpustakaan, seluruh jsp segera rusak.
Apa yang kamu inginkan? Kompiler tidak melacak perubahan tersebut. Mereka hanya dapat ditemukan secara visual saat melihat halaman HTML yang dihasilkan. Dan jika ini adalah beberapa skenario langka yang muncul dalam situasi non-sepele ... Tuhan memberkati pengembangan backend dan pengetikan statis!
GO TO FULL VERSION