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 ที่สร้างขึ้นเท่านั้น และถ้านี่เป็นสถานการณ์ที่เกิดขึ้นได้ยากในสถานการณ์ที่ไม่สำคัญ ... ขอพระเจ้าอวยพรการพัฒนาแบ็กเอนด์และการพิมพ์แบบคงที่!
GO TO FULL VERSION