14/08/2018, 10:56

Thư viện thẻ chuẩn - Standard Tag Library (JSTL) trong JSP

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 ...

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:

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:

Để 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ẻ <c:out > trong JSTLGiống <%= ... >, nhưng cho các Expression
Thẻ <c:set > trong JSTLThiết lập kết quả của một ước lượng Expression trong một 'scope'
Thẻ <c:remove > trong JSTLGỡ bỏ một biến mục tiêu (từ một biến scope cụ thể, nếu đã xác định)
Thẻ <c:catch> trong JSTLBắ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ẻ <c:if> trong JSTLThẻ đ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ẻ <c:choose> trong JSTLThẻ đ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 <when> và <otherwise>
Thẻ <c:when> trong JSTLThẻ phụ của <choose> mà include phần thân của nó nếu điều kiện được ước lượng là true
Thẻ <c:otherwise > trong JSTLThẻ phụ của <choose> mà theo sau thẻ <when> và chỉ chạy nếu tất cả điều kiện trước được ước lượng là 'false'
Thẻ <c:import> trong JSTLThu 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ẻ <c:forEach > trong JSTLThẻ 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ẻ <c:forTokens> trong JSTLLặ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ẻ <c:param> trong JSTLThêm một parameter tới một URL của thẻ đang chứa 'import'
Thẻ <c:redirect > trong JSTLRedirect tới một URL mới
Thẻ <c:url> trong JSTLTạ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ẻ <fmt:formatNumber> trong JSTLTrả lại giá trị số với định dạng cụ thể
Thẻ <fmt:parseNumber> trong JSTLParse biểu diễn chuỗi của một số, tiền tệ, phần trăm
Thẻ <fmt:formatDate> trong JSTLĐịnh dạng một date/time bởi sử dụng Style và Pattern đã cho
Thẻ <fmt:parseDate> trong JSTLParse biểu diễn chuỗi của một date/time
Thẻ <fmt:bundle> trong JSTLTải một Resource Bundle để được sử dụng bởi phần thân thẻ
Thẻ <fmt:setLocale> trong JSTLLưu giữ Locale đã cho trong biến cấu hình locale
Thẻ <fmt:setBundle> trong JSTLTả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ẻ <fmt:timeZone> trong JSTLXá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ẻ <fmt:setTimeZone> trong JSTLLưu giữ timezone đã cung câp biến cấu hình time zone đó
Thẻ <fmt:message> trong JSTLHiển thị một thông báo đa ngôn ngữ
Thẻ <fmt:requestEncoding> trong JSTLThiế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ẻ <sql:setDataSource> trong JSTLTạo một DataSource đơn giản chỉ thích hợp cho prototype
Thẻ <sql:query> trong JSTLThự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ẻ <sql:update> trong JSTLThự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ẻ <sql:param> trong JSTLThiết lập một parameter trong một lệnh SQL tới giá trị đã xác định
Thẻ <sql:dateParam> trong JSTLThiết lập một parameter trong một lệnh SQL tới giá trị java.util.Date đã xác định
Thẻ <sql:transaction > trong JSTLCung 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:

Dưới đây liệt kê các thẻ trong nhóm XML Tags trong JSTL:

ThẻMiêu tả
Thẻ <x:out> trong JSTLGiống <%= ... >, nhưng dành cho các XPath Expression
Thẻ <x:parse> trong JSTLSử 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ẻ <x:set > trong JSTLThiết lập một biến tới giá trị của một XPath expression
Thẻ <x:if > trong JSTLƯớ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ẻ <x:forEach> trong JSTLLặp qua các node trong một tài liệu XML
Thẻ <x:choose> trong JSTLThẻ đ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 <when> và <otherwise> trong JSTL
Thẻ <x:when > trong JSTLThẻ phụ của <choose> mà bao phần thân thẻ nếu Expression được ước lượng là 'true'
Thẻ <x:otherwise > trong JSTLThẻ phụ của <choose> mà theo sau các thẻ <when> và chỉ chạy khi nếu tất cả điều kiện trước là 'false'
Thẻ <x:transform > trong JSTLÁp dụng một phép biến đổi XSL trên một tài liệu XML
Thẻ <x:param > trong JSTLSử 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:

z
<%@ 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àmMiê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

0