7.1 c:if, c:forEach

ทุกคนชอบโค้ดที่ใช้แท็กแทนโค้ด Java ดังนั้นพวกเขาจึงตัดสินใจขยายขอบเขต แต่การเขียนโปรแกรมไม่จำกัดเพียงการสร้างวัตถุและการอ่านคุณสมบัติเท่านั้น คุณต้องเรียกใช้เมธอดของวัตถุ ทำงานกับฐานข้อมูลและบริการอื่นๆ จะทำอย่างไร?

คุณเพียงแค่ต้องแสดงแต่ละคำสั่ง Java เป็นแท็ก เคยifเป็น จะเป็น<if>เคยforเป็น จะเป็น<for>และอื่นๆ โอเค โอเค ล้อเล่น มันไม่ใช่แบบนั้น เป็นไปไม่ได้ที่คนจะตัดสินใจทำอย่างนั้นจริงๆ แต่ไม่แน่!

โปรแกรมเมอร์อนุญาตให้เพิ่มแท็กใด ๆ ลงในรหัส โดยหลักการแล้วไม่มีอะไรต้องกังวล - JSP เป็นมาตรฐานที่ขยายได้ แต่พวกเขาไปไกลกว่านั้นและเปิดตัว JSP Standard Tag Library - JSTL หน้าที่มีลักษณะดังนี้:



<%@ 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>

เป็นไปได้ทีเดียวที่คุณจะพบรหัสดังกล่าวในโครงการในอนาคตของคุณ ฉันจะให้คำอธิบายบางอย่าง

7.2 ฟังก์ชัน JSTL

ฟังก์ชัน JSTL แบ่งออกเป็น 5 ประเภท:

  • แท็กหลัก
  • การจัดรูปแบบแท็ก
  • แท็ก SQL;
  • แท็ก XML;
  • ฟังก์ชั่นการโทร

ฉันจะไม่แสดงรายการทั้งหมด แต่ฉันจะแสดงรายการที่ได้รับความนิยมมากที่สุด เริ่มจากแท็กหลัก:

1 <c:out> แสดงผลนิพจน์ที่ระบุ - เทียบเท่ากับ <%= %>
2 <c:set> เขียนผลลัพธ์ของนิพจน์ไปยังตัวแปร
3 <c:remove> ลบตัวแปร
4 <c:catch> จับข้อยกเว้น
5 <c:if> อะนาล็อกของ if
6 <c:choose> สวิตช์อะนาล็อก
7 <c:when> ใช้ร่วมกับการเลือก
8 <c:otherwise> ใช้ร่วมกับการเลือก
9 <c:import> อนุญาตให้คุณรวมเนื้อหาในรหัส (เทียบเท่ากับคำสั่งนำเข้า)
10 <c:forEach> สำหรับแต่ละลูป
สิบเอ็ด <c:param> ให้คุณตั้งค่าตัวเลือกสำหรับการนำเข้า
12 <c:redirect> เปลี่ยนเส้นทาง
13 <c:url> สร้าง URL ด้วยพารามิเตอร์

ฉันจะยกตัวอย่างเพียงหนึ่งเดียวและจบด้วยสิ่งนั้น โดยหลักการแล้วค่อนข้างเป็นไปได้ที่จะอ่านรหัสดังกล่าวหลังจากมีทักษะบางอย่าง แต่ไม่แนะนำให้เขียน



<%@ 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>

ลองคิดดูสิ เราเขียนโค้ด Java ในรูปแบบของแท็ก ดังนั้น JSP parser จะแปลงแท็กเหล่านี้เป็นโค้ด Java มีบางอย่างผิดพลาดไปในโลกนี้

อย่างไรก็ตาม คุณสามารถเขียนไลบรารีแท็กของคุณเองได้ ครั้งหนึ่งฉันเคยทำงานในโครงการที่พวกเขาอยู่ ประสบการณ์ที่ยอดเยี่ยม ทันทีที่มีการเปลี่ยนแปลงใดๆ กับไลบรารี jsp ทั้งหมดจะหยุดทำงานทันที

คุณต้องการอะไร? คอมไพเลอร์ไม่ได้ติดตามการเปลี่ยนแปลงดังกล่าว สามารถมองเห็นได้เมื่อดูหน้า HTML ที่สร้างขึ้นเท่านั้น และถ้านี่เป็นสถานการณ์ที่เกิดขึ้นได้ยากในสถานการณ์ที่ไม่สำคัญ ... ขอพระเจ้าอวยพรการพัฒนาแบ็กเอนด์และการพิมพ์แบบคงที่!