ไลบรารีแท็ก JSTL
โดยทั่วไปแล้ว JSTL ถือเป็นไลบรารีแท็กเดียว แต่จริงๆ แล้ว JSTL มีไลบรารีแท็ก 4 รายการ ไลบรารีแท็กเหล่านี้สรุปได้ดังนี้:
ไลบรารีแท็กหลัก - มีแท็กที่จำเป็นสำหรับแอปพลิเคชันเว็บ ตัวอย่างของไลบรารีแท็กหลัก ได้แก่ ลูป การกำหนดนิพจน์ และอินพุตและเอาต์พุตพื้นฐาน -
การจัดรูปแบบ/ไลบรารีแท็กสากล - มีไลบรารีแท็กที่ใช้ในการแยกวิเคราะห์ข้อมูล แท็กนี้จะแยกวิเคราะห์ข้อมูล เช่น วันที่ พื้นที่สถานที่ที่แตกต่างกัน ฯลฯ
ไลบรารีแท็กฐานข้อมูล ประกอบด้วยแท็กที่ใช้เข้าถึงฐานข้อมูล SQL แท็กเหล่านี้มักจะสร้างเฉพาะโปรแกรมต้นแบบเท่านั้น เนื่องจากโปรแกรมส่วนใหญ่จะไม่จัดการการเข้าถึงฐานข้อมูลโดยตรงจากเพจ JSP การเข้าถึงฐานข้อมูลควรฝังอยู่ใน EJB ซึ่งสามารถเข้าถึงได้โดยเพจ JSP
ไลบรารีแท็ก XML ประกอบด้วยแท็กที่ใช้ในการเข้าถึงองค์ประกอบ XML เนื่องจาก XML ถูกนำมาใช้กันอย่างแพร่หลายในการพัฒนาเว็บ การประมวลผล XML จึงเป็นคุณลักษณะที่สำคัญของ JSTL
ในบทความนี้ เราจะให้ข้อมูลเบื้องต้นสั้นๆ เกี่ยวกับแท็กหลักเท่านั้น เราจะดูตัวอย่างง่ายๆ ของวิธีจัดการข้อมูลที่ผู้ใช้ป้อนลงในแบบฟอร์ม ก่อนที่เราจะเริ่มตรวจสอบโปรแกรม เราต้องดูก่อนว่า JSTL จัดการกับนิพจน์อย่างไร ในส่วนถัดไป เราจะตรวจสอบภาษานิพจน์ EL
ภาษาการแสดงออกของ EL
องค์ประกอบหลักของ JSP 2.0 คือภาษานิพจน์ใหม่ที่เรียกว่า EL EL ถูกใช้กันอย่างแพร่หลายใน JSTL อย่างไรก็ตาม สิ่งสำคัญคือต้องจำไว้ว่า EL เป็นคุณลักษณะของ JSP ไม่ใช่ JSTL โค้ดสคริปต์เล็ต JSP ที่ใช้ใน JSP 2.0 สามารถมีนิพจน์ EL ได้ บรรทัดโค้ดต่อไปนี้สาธิต EL ในโค้ด JSP scriptlet:
<p>
ยอดรวมของคุณรวมค่าจัดส่งแล้วคือ ${total+shipping}
</p>
อย่างที่คุณเห็น การบวกยอดรวมและการจัดส่งจะสร้าง HTML และแสดงค่าในเบราว์เซอร์ นิพจน์เหล่านี้ยังสามารถใช้ในแท็ก JSTL ได้อีกด้วย ปัญหาสำคัญกับ JSTL1.0 คือ JSTL ไม่สามารถใช้กับเวอร์ชัน JSP1.2 ได้ เนื่องจาก JSP1.2 ไม่รองรับ EL จึงจำเป็นต้องจัดเตรียมแท็ก JSTL เพิ่มเติมบางส่วนเพื่ออำนวยความสะดวกในการใช้ EL ตัวอย่างเช่น หากคุณต้องการแสดงนิพจน์ข้างต้นโดยใช้ JSTL คุณสามารถใช้โค้ดต่อไปนี้
<p>
ยอดรวมของคุณรวมค่าจัดส่งแล้วคือ <c:out var="${total+shipping"/>
</p>
เป็นที่น่าสังเกตว่า JSTL ไม่ต้องการ JSP2.0 ในการทำงาน ข้อกำหนดนี้สามารถทำได้โดยการจัดเตรียมป้ายกำกับที่แสดงนิพจน์ EL
ตัวอย่าง JSTL เราจะตรวจสอบตัวอย่างง่ายๆ โดยใช้ JSTL ในตัวอย่างนี้ เราจะตรวจสอบกระบวนการทั่วไปในแอปพลิเคชันเว็บ เราจะดูวิธีการส่ง (POST) แบบฟอร์มและจัดการผลลัพธ์ของ POST รหัสโปรแกรมเป็นดังนี้:
<%@ taglib uri=" http://java.sun.com/jstl/core " prefix="c" %>
<html>
<หัว>
<title>ถ้ามีเนื้อหา</title>
</หัว>
<ร่างกาย>
<c:if test="${pageContext.request.method=='POST'}">
<c:if test="${param.guess=='Java'}">คุณเดาถูกแล้ว!
<br />
<br />
<br />
</c:if>
<c:if test="${param.guess!='Java'}">คุณคิดผิด
<br />
<br />
<br />
</c:ถ้า>
</c:if>
<form method="post">ทายว่าภาษาคอมพิวเตอร์อะไร
ฉันกำลังคิดถึง?
<input type="text" name="guess" />
<input type="submit" value="ลอง!" />
<br/>
</แบบฟอร์ม>
</ร่างกาย>
</html>
เว็บเพจธรรมดานี้จะแสดงแบบฟอร์มที่ขอให้ผู้ใช้เดาภาษาคอมพิวเตอร์ที่โปรแกรมมีอยู่ในใจ แน่นอนว่าคอมพิวเตอร์กำลังนึกถึง "Java" หน้านี้เริ่มต้นด้วยการทำเครื่องหมายว่า "ส่งแล้ว" ซึ่งช่วยให้ฟอร์มและโค้ดที่จัดการฟอร์มสามารถวางในหน้าเดียวกันได้ ซึ่งสามารถทำได้ผ่านคำสั่ง JSTL if ต่อไปนี้
<c:if test="${pageContext.request.method=='POST'}">
ตอนนี้คุณคงเห็นว่าแท็ก <c:if> ใช้นิพจน์ EL เพื่อกำหนดว่าวิธีการร้องขอเป็นแบบ POST หรือไม่ หากข้อมูลถูกโพสต์บนเพจ ข้อมูลการคาดเดาของผู้ใช้จะถูกจัดเก็บไว้ในพารามิเตอร์ที่เรียกว่า "แขก" เนื่องจาก "แขก" เป็นชื่อของอินพุตแบบฟอร์ม ตอนนี้เราต้องตรวจสอบว่าพารามิเตอร์นี้เท่ากับ "Java" หรือไม่ ซึ่งสามารถทำได้โดยใช้แท็ก <c:if> ต่อไปนี้:
<c:if test="${param.guess=='Java'}">
คุณเดาได้แล้ว!
</c:ถ้า>
อย่างที่คุณเห็น หากนิพจน์เป็นจริง เนื้อความของแท็ก <c:if> จะถูกดำเนินการ ในบทความนี้ เราเริ่มตรวจสอบว่ามีการติดตั้ง JSTL อย่างไรและทำงานอย่างไร นอกจากนี้เรายังมีตัวอย่าง JSTL เล็กๆ น้อยๆ เพื่อช่วยให้ทุกคนเข้าใจอีกด้วย
แท็กหลักของ JSTL ยังรวมถึงลูป ตัววนซ้ำ และการจัดการตัวแปร ด้วยการใช้แท็ก คุณสามารถวนซ้ำภายในคอลเลกชัน เข้าถึงข้อมูลเซสชันของผู้ใช้ ทำงานหลักอื่นๆ และอื่นๆ อีกมากมาย นอกจากไลบรารีแท็กหลักแล้ว XML ฐานข้อมูล และไลบรารีแท็กการจัดรูปแบบยังให้การใช้งานขั้นสูงอีกด้วย
(สิ้นสุด)
หมายเหตุ: EL Expression Language ได้รับการแปลเป็นภาษานิพจน์ EL ที่นี่ และบางส่วนได้รับการแปลเป็นภาษานิพจน์ EL ซึ่งมีความหมายเหมือนกัน
แปลโดย Caiyi0903(Willpower),2004.2.19