JSP Standard Tag Library (JSTL) คือชุดของแท็ก JSP ที่สรุปฟังก์ชันหลักทั่วไปของแอปพลิเคชัน JSP
JSTL รองรับงานทั่วไปที่มีโครงสร้าง เช่น การวนซ้ำ การตัดสินแบบมีเงื่อนไข การดำเนินการกับเอกสาร XML แท็กการทำให้เป็นสากล และแท็ก SQL นอกเหนือจากนี้ ยังมีกรอบการใช้แท็กที่กำหนดเองที่รวมเข้ากับ JSTL
ตามฟังก์ชันที่มีให้โดยแท็ก JSTL สามารถแบ่งได้เป็น 5 หมวดหมู่
แท็กหลัก
การจัดรูปแบบแท็ก
แท็ก SQL
แท็ก XML
ฟังก์ชัน JSTL
ขั้นตอนในการติดตั้งไลบรารี JSTL บน Apache Tomcat มีดังนี้:
แพ็คเกจไบนารี (jakarta-taglibs-standard-current.zip) ดาวน์โหลดจากไลบรารีแท็กมาตรฐานของ Apache ที่อยู่การดาวน์โหลด: http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
ดาวน์โหลดแพ็คเกจ jakarta-taglibs-standard-1.1.1.zip แล้วแตกไฟล์ และคัดลอกไฟล์ jar สองไฟล์ภายใต้ไฟล์ jakarta-taglibs-standard-1.1.1/lib/: standard.jar และ jstl.jar ไปที่ /WEB- INF /lib/อันเดอร์
ต่อไปเราจะเพิ่มการกำหนดค่าต่อไปนี้ในไฟล์ web.xml:
-
-
เจเอสพี
-
กำหนดค่า
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/fmt</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
เอฟเอ็มที
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/fmt-rt</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
เอฟเอ็มที
-
rt
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/core</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
ค
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/core-rt</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
ค
-
rt
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/sql</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
ฐานข้อมูล SQL
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/sql-rt</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
ฐานข้อมูล SQL
-
rt
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/x</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
x
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
<แท็กลิบ>
-
แท็กลิบ
-
ยูริ
-
http
-
//java.sun.com/jstl/x-rt</taglib-uri>
-
แท็กลิบ
-
ที่ตั้ง
-
/เว็บ-INF/
x
-
rt
-
แจ้ง
-
แท็กลิบ
-
ที่ตั้ง
-
-
แท็กลิบ
-
-
เจเอสพี
-
กำหนดค่า
-
-
หากต้องการใช้ไลบรารีใด ๆ คุณต้องรวมแท็ก <taglib> ไว้ในส่วนหัวของไฟล์ JSP ทุกไฟล์
แท็กหลักคือแท็ก JSTL ที่ใช้บ่อยที่สุด ไวยากรณ์สำหรับการอ้างอิงไลบรารีแท็กหลักมีดังนี้:
<%@ คำนำหน้า taglib = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
ฉลาก | อธิบาย |
---|---|
<ค:ออก> | ใช้เพื่อแสดงข้อมูลใน JSP เช่น <%= ... > |
<ค:ตั้งค่า> | ใช้ในการบันทึกข้อมูล |
<ค:ลบ> | สำหรับการลบข้อมูล |
<ค:จับ> | ใช้เพื่อจัดการข้อยกเว้นที่ทำให้เกิดข้อผิดพลาดและจัดเก็บข้อมูลข้อผิดพลาด |
<ค:ถ้า> | ก็เหมือนกับถ้าเราใช้ในโปรแกรมทั่วๆ ไป |
<ค:เลือก> | ใช้เป็นแท็กพาเรนต์ของ <c:when> และ <c:otherwise> เท่านั้น |
<ค:เมื่อไร> | แท็กย่อยของ <c:choose> ใช้เพื่อพิจารณาว่าเงื่อนไขเป็นจริงหรือไม่ |
<c:มิฉะนั้น> | แท็กย่อยของ <c:choose> เชื่อมต่ออยู่หลังแท็ก <c:when> และจะดำเนินการเมื่อแท็ก <c:when> ถูกตัดสินว่าเป็นเท็จ |
<ค:นำเข้า> | ดึงข้อมูล URL แบบเต็มหรือแบบสัมพันธ์และเปิดเผยเนื้อหาในหน้านั้น |
<c:สำหรับแต่ละ> | แท็กการวนซ้ำพื้นฐาน ยอมรับประเภทคอลเลกชันหลายประเภท |
<c:สำหรับโทเค็น> | แยกเนื้อหาตามตัวคั่นที่ระบุและทำซ้ำเอาต์พุต |
<c:พารามิเตอร์> | ใช้เพื่อส่งพารามิเตอร์ไปยังหน้าที่รวมหรือเปลี่ยนเส้นทาง |
<c:เปลี่ยนเส้นทาง> | เปลี่ยนเส้นทางไปยัง URL ใหม่ |
<ค:URL> | ใช้พารามิเตอร์การค้นหาทางเลือกเพื่อสร้าง URL |
แท็กการจัดรูปแบบ JSTL ใช้เพื่อจัดรูปแบบและส่งออกข้อความ วันที่ เวลา และตัวเลข ไวยากรณ์สำหรับการอ้างอิงไลบรารีแท็กการจัดรูปแบบมีดังนี้:
-
คำนำหน้า taglib
-
"เอฟเอ็มที"
ยูริ
-
"http://java.sun.com/jsp/jstl/fmt"
-
ฉลาก | อธิบาย |
---|---|
<fmt:formatNumber> | จัดรูปแบบตัวเลขโดยใช้รูปแบบหรือความแม่นยำที่ระบุ |
<fmt:parseNumber> | แยกวิเคราะห์สตริงที่แสดงถึงตัวเลข สกุลเงิน หรือเปอร์เซ็นต์ |
<fmt:formatDate> | จัดรูปแบบวันที่และเวลาโดยใช้สไตล์หรือรูปแบบที่ระบุ |
<fmt:parseDate> | แยกวิเคราะห์สตริงที่แสดงวันที่หรือเวลา |
<fmt:มัด> | ผูกทรัพยากร |
<fmt:setLocale> | พื้นที่ที่กำหนด |
<fmt:setBundle> | ผูกทรัพยากร |
<fmt:โซนเวลา> | ระบุเขตเวลา |
<fmt:setTimeZone> | ระบุโซนเวลา |
<fmt:ข้อความ> | แสดงข้อมูลโปรไฟล์ทรัพยากร |
<fmt:requestEncoding> | ตั้งค่าการเข้ารหัสอักขระของคำขอ |
ไลบรารีแท็ก JSTL SQL จัดเตรียมแท็กสำหรับการโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ (Oracle, MySQL, SQL Server ฯลฯ) ไวยากรณ์สำหรับการอ้างอิงไลบรารีแท็ก SQL เป็นดังนี้:
<%@ คำนำหน้า taglib = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
ฉลาก | อธิบาย |
---|---|
<sql:setDataSource> | ระบุแหล่งข้อมูล |
<sql:แบบสอบถาม> | เรียกใช้คำสั่งแบบสอบถาม SQL |
<sql:อัพเดต> | รันคำสั่งอัพเดต SQL |
<sql:พารามิเตอร์> | ตั้งค่าพารามิเตอร์ในคำสั่ง SQL ให้เป็นค่าที่ระบุ |
<sql:dateParam> | ตั้งค่าพารามิเตอร์วันที่ในคำสั่ง SQL ให้เป็นค่าอ็อบเจ็กต์ java.util.Date ที่ระบุ |
<sql:ธุรกรรม> | จัดเตรียมองค์ประกอบลักษณะการทำงานของฐานข้อมูลแบบซ้อนในการเชื่อมต่อฐานข้อมูลที่ใช้ร่วมกันเพื่อรันคำสั่งทั้งหมดเป็นธุรกรรม |
ไลบรารีแท็ก JSTL XML จัดเตรียมแท็กสำหรับการสร้างและจัดการเอกสาร XML ไวยากรณ์สำหรับการอ้างอิงไลบรารีแท็ก XML เป็นดังนี้:
<%@ คำนำหน้า taglib = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>
ก่อนที่จะใช้แท็ก xml คุณต้องคัดลอกแพ็คเกจที่เกี่ยวข้องกับ XML และ XPath ไปยัง <ไดเรกทอรีการติดตั้ง Tomcat>lib:
XercesImpl.jar:
ที่อยู่ดาวน์โหลด: http://www.apache.org/dist/xerces/j/
xalan.jar:
ที่อยู่การดาวน์โหลด: http://xml.apache.org/xalan-j/index.html
ฉลาก | อธิบาย |
---|---|
<x:ออก> | คล้ายกับ <%= ... > แต่ใช้ในนิพจน์ XPath เท่านั้น |
<x:แยกวิเคราะห์> | แยกวิเคราะห์ข้อมูล XML |
<x:ตั้งค่า> | ตั้งค่านิพจน์ XPath |
<x:ถ้า> | ตัดสินนิพจน์ XPath หากเป็นจริง ให้ดำเนินการเนื้อหาใน ontology ไม่เช่นนั้นให้ข้าม ontology |
<x:สำหรับแต่ละ> | วนซ้ำโหนดในเอกสาร XML |
<x:เลือก> | แท็กหลักของ <x:when> และ <x:otherwise> |
<x:เมื่อไหร่> | แท็กย่อยของ <x:choose> ใช้สำหรับการตัดสินแบบมีเงื่อนไข |
<x:มิฉะนั้น> | แท็กย่อยของ <x:choose> จะถูกดำเนินการเมื่อ <x:when> ถูกตัดสินว่าเป็นเท็จ |
<x:แปลงร่าง> | ใช้การแปลง XSL กับเอกสาร XML |
<x:พารามิเตอร์> | ใช้ร่วมกับ <x:transform> เพื่อตั้งค่าสไตล์ชีต XSL |
JSTL มีชุดของฟังก์ชันมาตรฐาน ซึ่งส่วนใหญ่เป็นฟังก์ชันการประมวลผลสตริงสำหรับใช้งานทั่วไป ไวยากรณ์สำหรับการอ้างอิงไลบรารีฟังก์ชัน JSTL มีดังนี้:
<%@ คำนำหน้า taglib = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
การทำงาน | อธิบาย |
---|---|
Fn:มี() | ทดสอบว่าสตริงอินพุตมีสตริงย่อยที่ระบุหรือไม่ |
Fn: มี IgnoreCase () | ทดสอบว่าสตริงอินพุตมีสตริงย่อยที่ระบุหรือไม่ ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
Fn: สิ้นสุดด้วย () | ทดสอบว่าสตริงอินพุตลงท้ายด้วยส่วนต่อท้ายที่ระบุหรือไม่ |
Fn:escapeXml() | ข้ามอักขระที่สามารถใช้เป็นแท็ก XML |
Fn:ดัชนีของ() | ส่งกลับตำแหน่งที่สตริงที่ระบุปรากฏในสตริงอินพุต |
Fn:เข้าร่วม() | รวมองค์ประกอบในอาร์เรย์เป็นสตริงแล้วส่งออก |
Fn:ความยาว() | ส่งกลับความยาวสตริง |
Fn:แทนที่() | แทนที่ตำแหน่งที่ระบุในสตริงอินพุตด้วยสตริงที่ระบุและส่งกลับ |
Fn:แยก() | กำหนดขอบเขตสตริงด้วยตัวคั่นที่ระบุ จากนั้นสร้างอาร์เรย์ของสตริงย่อยแล้วส่งคืน |
Fn: เริ่มต้นด้วย () | ทดสอบว่าสตริงอินพุตเริ่มต้นด้วยคำนำหน้าที่ระบุหรือไม่ |
Fn:สตริงย่อย() | ส่งกลับชุดย่อยของสตริง |
Fn:substringAfter() | ส่งกลับชุดย่อยของสตริงที่อยู่หลังสตริงย่อยที่ระบุ |
Fn:substringBefore() | ส่งกลับชุดย่อยของสตริงก่อนสตริงย่อยที่ระบุ |
Fn:ถึงตัวพิมพ์เล็ก() | แปลงอักขระในสตริงเป็นตัวพิมพ์เล็ก |
Fn:toUpperCase() | แปลงอักขระในสตริงเป็นตัวพิมพ์ใหญ่ |
Fn:ตัดแต่ง() | ลบอักขระช่องว่างนำหน้า |