JavaServer Pages Standard Tag Library (JSTL) là một tập hợp các thẻ JSP hữu ích, mà gói các tính năng lõi phổ biến tới các ứng dụng JSP.
JSTL hỗ trợ tới các tác vụ phổ biến và có tính cấu trúc, ví dụ như các tính lặp và điều kiện, các thẻ để thao tác tài liệu XML, các thẻ đa ngôn ngữ, và các thẻ SQL. Nó cũng cung cấp Framework để tích hợp các Custom Tags với các thẻ JSTL.
Các thẻ JSTL có thể được phân loại, theo tính năng của nó, thành các nhóm thư viện thẻ JSTL sau, mà có thể được sử dụng khi tạo một JSP page:
- Core Tags: Nhóm thẻ cơ bản
- Formatting tags: Nhóm thẻ định dạng
- SQL tags: Nhóm thẻ SQL
- XML tags: Nhóm thẻ XML
- JSTL Functions: Nhóm hàm JSTL
Cài đặt thư viện JSTL
Nếu bạn đang sử dụng Apache Tomcat container, thì bạn theo hai bước sau:
- Tải bản phân phối nhị phân từ Apache Standard Taglib và mở file nén đó.
- Để sử dụng Standard Taglib từ Jakarta Taglib, đơn giản bạn chỉ cần sao chép các JAR file trong thư mục 'lib' tới thư mục webapps\ROOT\WEB-INF\lib trong ứng dụng của bạn.
Để sử dụng bất kỳ thư viện nào, bạn phải bao một <taglib>
tại trên cùng của mỗi JSP mà sử dụng thư viện đó.
Nhóm Core Tags trong JSTL
Nhóm Core Tags là các thẻ JSTL được sử dụng phổ biến nhất. Sau đây là cú pháp đơn giản để bao thư viện JSTL Core trong JSP của bạn:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/html/core" %>
Bảng dưới liệt kê các thẻ trong nhóm Core Tags trong JSTL:
Thẻ | Miêu tả |
---|---|
Thẻ | Giống <%= ... >, nhưng cho các Expression |
Thẻ | Thiết lập kết quả của một ước lượng Expression trong một 'scope' |
Thẻ | Gỡ bỏ một biến mục tiêu (từ một biến scope cụ thể, nếu đã xác định) |
Thẻ | Bắt bất kỳ Throwable mà xuất hiện trong thân của nó và trưng bày nó một cách tùy ý |
Thẻ | Thẻ điều kiện đơn giản, mà ước lượng phần thân của nó nếu điều kiện đã cho là true |
Thẻ | Thẻ điều kiện đơn giản mà thiết lập một context cho các hoạt động điều kiện loại trừ, được đánh dấu bởi |
Thẻ | Thẻ phụ của |
Thẻ | Thẻ phụ của |
Thẻ | Thu nhận một URL tuyệt đối hoặc quan hệ và trưng bày nội dung của nó tới hoặc trang đó, một String trong 'var', hoặc một Reader trong 'varReader' |
Thẻ | Thẻ lặp cơ bản, chấp nhận nhiều kiểu tập hợp khác nhau và hỗ trợ subsetting (chia tập con) và tính năng khác |
Thẻ | Lặp qua các token, được phân biệt bởi các dấu phân tách (delimiter) đã cung cấp |
Thẻ | Thêm một parameter tới một URL của thẻ đang chứa 'import' |
Thẻ | Redirect tới một URL mới |
Thẻ | Tạo một URL với các tham số truy vấn tùy ý |
Nhóm Formatting Tags trong JSTL
Nhóm Formatting Tags trong JSTL được sử dụng để định dạng và hiển thị text, date, time và số ngôn ngữ trong Website. Sau đây là cú pháp cơ bản để include thư viện thẻ định dạng trong JSP của bạn.
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/html/fmt" %>
Bảng dưới liệt kê các thẻ trong nhóm Formatting Tags trong JSTL:
Thẻ | Miêu tả |
---|---|
Thẻ | Trả lại giá trị số với định dạng cụ thể |
Thẻ | Parse biểu diễn chuỗi của một số, tiền tệ, phần trăm |
Thẻ | Định dạng một date/time bởi sử dụng Style và Pattern đã cho |
Thẻ | Parse biểu diễn chuỗi của một date/time |
Thẻ | Tải một Resource Bundle để được sử dụng bởi phần thân thẻ |
Thẻ | Lưu giữ Locale đã cho trong biến cấu hình locale |
Thẻ | Tải một Resource Bundle và lưu giữ nó trong biến scope đã đặt tên hoặc biến cấu hình bundle |
Thẻ | Xác định timezone cho bất kỳ định dạng time nào hoặc parse các action được lặp trong phần thân của nó |
Thẻ | Lưu giữ timezone đã cung câp biến cấu hình time zone đó |
Thẻ | Hiển thị một thông báo đa ngôn ngữ |
Thẻ | Thiết lập mã hóa ký tự cho request |
Nhóm SQL Tags trong JSTL
Nhóm SQL Tags trong JSTL cung cấp các thẻ để tương tác với các Relational Database (RDBMSs), ví dụ như Oracle, MySQL, hoặc Microsoft SQL Server.
Đây là cú pháp để bao nhóm SQL Tags trong JSTL trong JSP của bạn:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/html/sql" %>
Bảng dưới liệt kê các thẻ trong nhóm SQL Tags trong JSP:
Thẻ | Miêu tả |
---|---|
Thẻ | Tạo một DataSource đơn giản chỉ thích hợp cho prototype |
Thẻ | Thực thi SQL query được định nghĩa trong phần thân của nó hoặc thông qua thuộc tính sql |
Thẻ | Thực thi SQL update được định nghĩa trong phần thân của nó hoặc thông quan thuộc tính sql |
Thẻ | Thiết lập một parameter trong một lệnh SQL tới giá trị đã xác định |
Thẻ | Thiết lập một parameter trong một lệnh SQL tới giá trị java.util.Date đã xác định |
Thẻ | Cung cấp các phần tử database action được lặp với một Connection đã chia sẻ, thiết lập để thực thi tất cả các lệnh |
Nhóm XML Tags trong JSTL
Nhóm XML Tags trong JSTL cung cấp một cách để tạo và thao tác các tài liệu XML. Sau đây là cú pháp để include nhóm XML Tags trong JSP của bạn:
Thư viện thẻ XML Tags trong JSTL có các custom tags để tương tác với XML data. Điều này bao gồm việc parse XML, truyền tải XML data, và điều khiển dòng dữ liệu dựa trên các XPath Expression.
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/html/xml" %>
Trước khi đi vào ví dụ, bạn cần copy hai XML sau và các thư viện XPath liên quan vào trong <Tomcat Installation Directory>\\lib
:
- XercesImpl.jar: Tải nó từ http://www.apache.org/dist/xerces/j/
- xalan.jar: Tải nó từ http://xml.apache.org/xalan-j/index.html
Thẻ | Miêu tả |
---|---|
Thẻ | Giống <%= ... >, nhưng dành cho các XPath Expression |
Thẻ | Sử dụng để parse XML data được xác định hoặc thông qua một thuộc tính hoặc trong phần thân thẻ |
Thẻ | Thiết lập một biến tới giá trị của một XPath expression |
Thẻ | Ước lượng XPath Expression và nếu nó là true, thì nó xử lý phần thân thẻ. Nếu điều kiện là false, phần thân bị bỏ qua |
Thẻ | Lặp qua các node trong một tài liệu XML |
Thẻ | Thẻ điều kiện đơn giản mà thiết lập một context cho hoạt động điều kiện loại trừ, được đánh dấu bởi |
Thẻ | Thẻ phụ của |
Thẻ | Thẻ phụ của |
Thẻ | Áp dụng một phép biến đổi XSL trên một tài liệu XML |
Thẻ | Sử dụng cùng với thẻ transform để thiết lập một parameter trong XSLT stylesheet |
Nhóm JSTL Functions
JSTL bao gồm một số hàm chuẩn, mà hầu hết là các hàm thao tác chuỗi phổ biến. Sau đây là cú pháp để bao nhóm JSTL Functions trong chương trình JSP của bạn:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/html/functions" %>
Bảng dưới liệt kê danh sách các JSTL Functions:
Hàm | Miêu tả |
---|---|
Hàm fn:contains() trong JSTL | Kiểm tra nếu một chuỗi input chứa chuỗi phụ đã cho |
Hàm fn:containsIgnoreCase() trong JSTL | Kiểm tra nếu một chuỗi input chứa chuỗi phụ đã cho trong trường hợp không phân biệt kiểu chữ |
Hàm fn:endsWith() trong JSTL | Kiểm tra nếu một chuỗi input kết thúc với suffix đã cho |
Hàm fn:escapeXml() trong JSTL | Các ký tự thoát mà có thể được phiên dịch như XML markup |
Hàm fn:indexOf() trong JSTL | Trả về index bên trong một chuỗi về sự xuất hiện đầu tiên của chuỗi phụ |
Hàm fn:join() trong JSTL | Kết hợp tất cả phần tử trong một mảng thành một chuỗi |
Hàm fn:length() trong JSTL | Trả về số item trong một tập hợp, hoặc số ký tự trong một chuỗi |
Hàm fn:replace() trong JSTL | Trả về một chuỗi là kết quả của việc thay thế một chuỗi input với một chuỗi đã cho |
Hàm fn:split() trong JSTL | Chia một chuỗi thành một mảng các chuỗi phụ |
Hàm fn:startsWith() trong JSTL | Kiểm tra nếu một chuỗi input bắt đầu với prefix đã cho |
Hàm fn:substring() trong JSTL | Trả về một tập con của một chuỗi |
Hàm fn:substringAfter() trong JSTL | Trả về một tập con của một chuỗi ở sau một chuỗi phụ đã cho |
Hàm fn:substringBefore() trong JSTL | Trả về một tập con của một chuỗi ở trước một chuỗi phụ đã cho |
Hàm fn:toLowerCase() trong JSTL | Biến đổi tất cả ký tự của một chuỗi thành chữ thường |
Hàm fn:toUpperCase() trong JSTL | Biến đổi tất cả ký tự của một chuỗi thành chữ hoa |
Hàm fn:trim() trong JSTL | Gỡ bỏ các khoảng trống trắng từ hai đầu của một chuỗi |