JSP - บทแนะนำไลบรารีแท็กมาตรฐาน (JSTL)
ในบทนี้เราจะเข้าใจแท็กต่างๆใน JSP JavaServer Pages Standard Tag Library (JSTL) คือชุดของแท็ก JSP ที่มีประโยชน์ซึ่งห่อหุ้มฟังก์ชันการทำงานหลักที่ใช้ร่วมกันกับแอปพลิเคชัน JSP จำนวนมาก
JSTL รองรับงานโครงสร้างทั่วไปเช่นการวนซ้ำและเงื่อนไขแท็กสำหรับการจัดการเอกสาร XML แท็กสากลและแท็ก SQL นอกจากนี้ยังมีกรอบสำหรับการรวมแท็กที่กำหนดเองที่มีอยู่กับแท็ก JSTL
ติดตั้ง JSTL Library
ในการเริ่มต้นทำงานกับ JSP tages คุณต้องติดตั้งไลบรารี JSTL ก่อน หากคุณใช้คอนเทนเนอร์ Apache Tomcat ให้ทำตามสองขั้นตอนนี้ -
Step 1- ดาวน์โหลดการแจกแจงไบนารีจากApache Standard Taglibและแกะไฟล์บีบอัด
Step 2 - ในการใช้ Standard Taglib จากไฟล์ Jakarta Taglibs distributionเพียงคัดลอกไฟล์ JAR ในไดเร็กทอรี 'lib' ของการแจกจ่ายไปยังแอปพลิเคชันของคุณ webapps\ROOT\WEB-INF\lib ไดเรกทอรี
ในการใช้ไลบรารีใด ๆ คุณต้องใส่ <taglib> คำสั่งที่ด้านบนของแต่ละ JSP ที่ใช้ไลบรารี
การจำแนกประเภทของแท็ก JSTL
แท็ก JSTL สามารถจัดประเภทตามฟังก์ชันของพวกเขาเป็นกลุ่มไลบรารีแท็ก JSTL ต่อไปนี้ที่สามารถใช้เมื่อสร้างเพจ JSP -
Core Tags
Formatting tags
SQL tags
XML tags
JSTL Functions
แท็กหลัก
กลุ่มหลักของแท็กคือแท็ก JSTL ที่ใช้บ่อยที่สุด ต่อไปนี้เป็นไวยากรณ์ที่จะรวมไลบรารี JSTL Core ใน JSP ของคุณ -
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
ตารางต่อไปนี้แสดงรายการแท็ก JSTL หลัก -
ส. | แท็กและคำอธิบาย |
---|---|
1 | เช่น <% = ... > แต่สำหรับนิพจน์ |
2 | ตั้งค่าผลลัพธ์ของการประเมินนิพจน์ในไฟล์ 'scope' |
3 | ลบไฟล์ scoped variable (จากขอบเขตเฉพาะหากระบุไว้) |
4 | จับใด ๆ Throwable ที่เกิดขึ้นในร่างกายและอาจเปิดเผยได้ |
5 | แท็กเงื่อนไขอย่างง่ายซึ่งประเมินเนื้อความหากเงื่อนไขที่ให้มาเป็นจริง |
6 | แท็กเงื่อนไขอย่างง่ายที่สร้างบริบทสำหรับการดำเนินการตามเงื่อนไขที่ไม่ซ้ำกันซึ่งทำเครื่องหมายโดย <when> และ <otherwise>. |
7 | แท็กย่อยของ <choose> ซึ่งรวมถึงร่างกายของมันหากสภาพของมันถูกประเมินเป็น 'true'. |
8 | แท็กย่อยของ <choose> ที่เป็นไปตาม <when> แท็กและรันก็ต่อเมื่อเงื่อนไขก่อนหน้าทั้งหมดถูกประเมินเป็น 'false'. |
9 | ดึงข้อมูล URL แบบสัมบูรณ์หรือแบบสัมพัทธ์และแสดงเนื้อหาไปยังเพจซึ่งเป็น String in 'var'หรือผู้อ่านใน 'varReader'. |
10 | แท็กการวนซ้ำพื้นฐานยอมรับประเภทคอลเลกชันที่แตกต่างกันมากมายและรองรับการตั้งค่าย่อยและฟังก์ชันอื่น ๆ |
11 | วนซ้ำบนโทเค็นคั่นด้วยเส้นคั่นที่ให้มา |
12 | เพิ่มพารามิเตอร์ให้กับไฟล์ 'import' URL ของแท็ก |
13 | เปลี่ยนเส้นทางไปยัง URL ใหม่ |
14 | สร้าง URL ที่มีพารามิเตอร์การสืบค้นเพิ่มเติม |
การจัดรูปแบบแท็ก
แท็กการจัดรูปแบบ JSTL ใช้เพื่อจัดรูปแบบและแสดงข้อความวันที่เวลาและตัวเลขสำหรับเว็บไซต์ที่เป็นสากล ต่อไปนี้เป็นไวยากรณ์ที่จะรวมไลบรารีการจัดรูปแบบใน JSP ของคุณ -
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
ตารางต่อไปนี้แสดงรายการแท็ก JSTL การจัดรูปแบบ -
ส. | แท็กและคำอธิบาย |
---|---|
1 | เพื่อแสดงค่าตัวเลขด้วยความแม่นยำหรือรูปแบบเฉพาะ |
2 | แยกวิเคราะห์การแสดงสตริงของตัวเลขสกุลเงินหรือเปอร์เซ็นต์ |
3 | จัดรูปแบบวันที่และ / หรือเวลาโดยใช้รูปแบบและรูปแบบที่ให้มา |
4 | แยกวิเคราะห์การแทนค่าสตริงของวันที่และ / หรือเวลา |
5 | โหลดบันเดิลทรัพยากรที่จะใช้โดยเนื้อหาแท็ก |
6 | เก็บโลแคลที่กำหนดในตัวแปรคอนฟิกูเรชันโลแคล |
7 | โหลดบันเดิลรีซอร์สและเก็บไว้ในตัวแปรกำหนดขอบเขตที่มีชื่อหรือตัวแปรคอนฟิกูเรชันบันเดิล |
8 | ระบุเขตเวลาสำหรับการจัดรูปแบบเวลาหรือการแยกวิเคราะห์การกระทำที่ซ้อนอยู่ในเนื้อความ |
9 | เก็บเขตเวลาที่กำหนดไว้ในตัวแปรการกำหนดค่าโซนเวลา |
10 | แสดงข้อความสากล |
11 | ตั้งค่าการเข้ารหัสอักขระร้องขอ |
แท็ก SQL
ไลบรารีแท็ก JSTL SQL จัดเตรียมแท็กสำหรับโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ (RDBMS) เช่น Oracle, mySQL, หรือ Microsoft SQL Server.
ต่อไปนี้เป็นไวยากรณ์ที่จะรวมไลบรารี JSTL SQL ใน JSP ของคุณ -
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
ตารางต่อไปนี้แสดงรายการแท็ก SQL JSTL -
ส. | แท็กและคำอธิบาย |
---|---|
1 | สร้างแหล่งข้อมูลอย่างง่ายที่เหมาะสำหรับการสร้างต้นแบบเท่านั้น |
2 | เรียกใช้แบบสอบถาม SQL ที่กำหนดไว้ในเนื้อความหรือผ่านแอตทริบิวต์ sql |
3 | เรียกใช้การอัปเดต SQL ที่กำหนดไว้ในเนื้อความหรือผ่านแอตทริบิวต์ sql |
4 | ตั้งค่าพารามิเตอร์ในคำสั่ง SQL เป็นค่าที่ระบุ |
5 | ตั้งค่าพารามิเตอร์ในคำสั่ง SQL เป็นค่า java.util.Date ที่ระบุ |
6 | จัดเตรียมองค์ประกอบการดำเนินการฐานข้อมูลที่ซ้อนกันด้วยการเชื่อมต่อแบบแบ่งใช้ตั้งค่าเพื่อเรียกใช้คำสั่งทั้งหมดเป็นธุรกรรมเดียว |
แท็ก XML
แท็ก JSTL XML จัดเตรียมวิธีการสร้างและจัดการเอกสาร XML ที่เน้น JSP เป็นศูนย์กลาง ต่อไปนี้เป็นไวยากรณ์ที่จะรวมไลบรารี JSTL XML ใน JSP ของคุณ
ไลบรารีแท็ก JSTL XML มีแท็กที่กำหนดเองสำหรับการโต้ตอบกับข้อมูล XML ซึ่งรวมถึงการแยกวิเคราะห์ XML การแปลงข้อมูล XML และการควบคุมโฟลว์ตามนิพจน์ XPath
<%@ taglib prefix = "x"
uri = "http://java.sun.com/jsp/jstl/xml" %>
ก่อนที่คุณจะดำเนินการกับตัวอย่างคุณจะต้องคัดลอกไลบรารี XML และ XPath สองไลบรารีต่อไปนี้ลงในไฟล์ <Tomcat Installation Directory>\lib -
XercesImpl.jar - ดาวน์โหลดจาก https://www.apache.org/dist/xerces/j/
xalan.jar - ดาวน์โหลดจาก https://xml.apache.org/xalan-j/index.html
ต่อไปนี้เป็นรายการ XML JSTL Tags -
ส. | แท็กและคำอธิบาย |
---|---|
1 | เช่น <% = ... > แต่สำหรับนิพจน์ XPath |
2 | ใช้เพื่อแยกวิเคราะห์ข้อมูล XML ที่ระบุผ่านแอตทริบิวต์หรือในเนื้อหาแท็ก |
3 | ตั้งค่าตัวแปรเป็นค่าของนิพจน์ XPath |
4 | ประเมินนิพจน์ XPath ทดสอบและหากเป็นจริงจะประมวลผลร่างของมัน หากเงื่อนไขการทดสอบเป็นเท็จเนื้อหาจะถูกละเว้น |
5 | ในการวนซ้ำโหนดในเอกสาร XML |
6 | แท็กเงื่อนไขอย่างง่ายที่สร้างบริบทสำหรับการดำเนินการตามเงื่อนไขที่ไม่ซ้ำกันซึ่งทำเครื่องหมายโดย <when> และ <otherwise> แท็ก |
7 | แท็กย่อยของ <choose> ซึ่งรวมถึงเนื้อความหากนิพจน์ประเมินว่าเป็น 'จริง' |
8 | แท็กย่อยของ <choose> ที่เป็นไปตาม <when> แท็กและรันก็ต่อเมื่อเงื่อนไขก่อนหน้านี้ทั้งหมดประเมินว่าเป็น 'เท็จ' |
9 | ใช้การแปลง XSL บนเอกสาร XML |
10 | ใช้ร่วมกับ transform แท็กเพื่อตั้งค่าพารามิเตอร์ในสไตล์ชีต XSLT |
ฟังก์ชั่น JSTL
JSTL มีฟังก์ชันมาตรฐานจำนวนหนึ่งซึ่งส่วนใหญ่เป็นฟังก์ชันการจัดการสตริงทั่วไป ต่อไปนี้เป็นไวยากรณ์ที่จะรวมไลบรารีฟังก์ชัน JSTL ใน JSP ของคุณ -
<%@ taglib prefix = "fn"
uri = "http://java.sun.com/jsp/jstl/functions" %>
ตารางต่อไปนี้แสดงรายการฟังก์ชั่น JSTL ต่างๆ -
ส. | ฟังก์ชั่นและคำอธิบาย |
---|---|
1 | fn: มี () ทดสอบว่าสตริงอินพุตมีสตริงย่อยที่ระบุหรือไม่ |
2 | fn: containsIgnoreCase () ทดสอบว่าสตริงอินพุตมีสตริงย่อยที่ระบุหรือไม่ในกรณีที่ไม่คำนึงถึงตัวพิมพ์ |
3 | Fn: สิ้นสุดด้วย () ทดสอบว่าสตริงอินพุตลงท้ายด้วยคำต่อท้ายที่ระบุหรือไม่ |
4 | Fn: escapeXml () หลีกเลี่ยงอักขระที่สามารถตีความเป็นมาร์กอัป XML |
5 | Fn: indexOf () ส่งคืนดัชนีโดยมีสตริงของการเกิดขึ้นครั้งแรกของสตริงย่อยที่ระบุ |
6 | fn: เข้าร่วม () รวมองค์ประกอบทั้งหมดของอาร์เรย์ลงในสตริง |
7 | Fn: ความยาว () ส่งคืนจำนวนรายการในคอลเลกชันหรือจำนวนอักขระในสตริง |
8 | fn: แทนที่ () ส่งคืนสตริงที่เกิดจากการแทนที่ในสตริงอินพุตเหตุการณ์ทั้งหมดที่เกิดขึ้นด้วยสตริงที่กำหนด |
9 | Fn: แยก () แยกสตริงออกเป็นอาร์เรย์ของสตริงย่อย |
10 | Fn: startWith () ทดสอบว่าสตริงอินพุตเริ่มต้นด้วยคำนำหน้าที่ระบุหรือไม่ |
11 | fn: สตริงย่อย () ส่งคืนชุดย่อยของสตริง |
12 | fn: substringAfter () ส่งคืนชุดย่อยของสตริงตามสตริงย่อยเฉพาะ |
13 | Fn: substringBefore () ส่งคืนชุดย่อยของสตริงก่อนสตริงย่อยเฉพาะ |
14 | Fn: toLowerCase () แปลงอักขระทั้งหมดของสตริงเป็นตัวพิมพ์เล็ก |
15 | Fn: toUpperCase () แปลงอักขระทั้งหมดของสตริงเป็นตัวพิมพ์ใหญ่ |
16 | fn: ตัดแต่ง () ลบช่องว่างสีขาวจากปลายทั้งสองด้านของสตริง |