7.1 c:jika, c:untukSetiap

Semua orang menyukai kod menggunakan teg dan bukannya kod Java, jadi mereka memutuskan untuk mengembangkan skop. Tetapi pengaturcaraan tidak terhad kepada mencipta objek dan membaca sifatnya. Anda perlu memanggil kaedah objek, bekerja dengan pangkalan data dan perkhidmatan lain. Apa nak buat?

Anda hanya perlu mewakili setiap pernyataan Java sebagai teg. Was if, will be <if>, was for, will be, <for>dan seterusnya. Okay, okay, gurau je, bukan macam tu. Ya, tidak mungkin orang benar-benar memutuskan untuk berbuat demikian. Tetapi tidak, mungkin!

Pengaturcara dibenarkan menambah sebarang tag pada kod. Pada dasarnya, tiada apa yang perlu dibimbangkan - JSP ialah piawaian yang boleh diperluaskan. Tetapi mereka pergi lebih jauh dan mengeluarkan Pustaka Tag Standard JSP - JSTL. Halaman dengannya kelihatan 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>

Ada kemungkinan anda akan menemui kod sedemikian dalam projek masa depan anda, di sana saya akan memberikan beberapa penjelasan.

7.2 Fungsi JSTL

Fungsi JSTL dibahagikan kepada 5 kategori:

  • Tag utama;
  • Memformat teg;
  • Tag SQL;
  • tag XML;
  • Fungsi panggilan.

Saya tidak akan menyenaraikan semuanya, tetapi saya akan menyenaraikan yang paling popular. Mari kita mulakan dengan tag utama:

1 <c:out> Mengeluarkan ungkapan yang ditentukan - bersamaan dengan <%= %>
2 <c:set> Menulis hasil ungkapan kepada pembolehubah
3 <c:remove> Memadam pembolehubah
4 <c:catch> Menangkap pengecualian
5 <c:if> analogi jika
6 <c:choose> suis analog
7 <c:when> Digunakan bersama-sama dengan memilih
8 <c:otherwise> Digunakan bersama-sama dengan memilih
9 <c:import> Membolehkan anda memasukkan kandungan dalam kod (bersamaan dengan arahan import)
10 <c:forEach> untuk setiap gelung
sebelas <c:param> Membolehkan anda menetapkan pilihan untuk import
12 <c:redirect> Ubah hala
13 <c:url> Mencipta URL dengan parameter

Saya akan berikan hanya satu contoh dan selesaikan dengan itu. Pada dasarnya, agak mungkin untuk membaca kod tersebut selepas beberapa kemahiran. Tetapi saya tidak mengesyorkan 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>

Fikirkanlah, kami menulis kod Java dalam bentuk teg, supaya penghurai JSP kemudiannya akan menukar teg ini kepada kod Java. Sesuatu di dunia ini telah menjadi salah.

Dengan cara ini, anda boleh menulis perpustakaan tag anda sendiri. Saya juga pernah bekerja dalam projek di mana mereka berada. Pengalaman yang mengagumkan. Sebaik sahaja sebarang perubahan dibuat pada perpustakaan, keseluruhan jsp serta-merta pecah.

Apa yang kamu mahu? Pengkompil tidak menjejaki perubahan tersebut. Ia hanya boleh ditemui secara visual apabila melihat halaman HTML yang dijana. Dan jika ini adalah beberapa senario yang jarang berlaku yang timbul dalam situasi yang tidak remeh ... Tuhan memberkati pembangunan bahagian belakang dan penaipan statik!