Trong bài viết này, tôi sẽ hướng dẫn các bạn sử dụng JSP Standard Tag Library trong Java hay còn gọi tắt là JSLT trong Java JSP. Nhắc đến lập trình web với jsp/servlet chúng ta sẽ sử dụng một số kiểu thẻ Scriptlet để viết code Java vào trong trang jsp.Tuy nhiên Java không khuyến khích chúng ta sử dụng nhiều code java vào trang jsp đó.Lý do tại sao? Các bạn có thể đọc qua bài viết này của tôi. Vậy nên JSTL sinh ra giúp chúng ta khắc phục những hạn chế trên, cũng như việc lập trình sẽ nhanh hơn, tối ưu hơn.
Đang xem: Jstl là gì
1. JSTL là gì?
JSTL là viết tắt của cụm từ JSP Standard Tag Library (JSTL) là một thư viện thẻ chuẩn cung cấp các thẻ để kiểm soát hành vi trang, lặp đi lặp lại và các lệnh điều khiển, các thẻ quốc tế hóa, và các thẻ SQL, JSTL được viết ngay tại trang JSP.
Từ sự phát triển của Taglibs và những nhược điểm khi xử lý code business logic cũng như những người mới học Java trở nên khó hiểu hơn thì JavaServerPages Standard Tag Library (JSTL) được sinh ra cùng với đó JSTL kết hợp với biểu thức Expression language (EL), JSTL đã loại bỏ scriptlet khi viết code trong trang JSP.
Xem thêm: WordPress Plugin Là Gì ? Hướng Dẫn Sử Dụng Và Cài Đặt Plugin
2. Điều kiện cần để sử dụng Standard Tag Library (JSTL)
Để sử dụng JSTL trong các trang JSP của bạn, bạn cần phải tải về các thư viện JSTL cho bộ chứa Servlet (container servlet) của bạn.Thông thường những thư viện chúng ta đặt trong thư mục WEB-INF/lib của project. Và nếu project của bạn là Maven thì bạn cần phải khai báo các thư viện này trong pom.xml.
Link download JSTL. Click vào để download.
Xem thêm: Phần Mềm Canon Mf Toolbox 4.9, Download And Install Toolbox V
Nếu là Project Maven các bạn sử dụng đoạn code này đặt trong file pom.xml như sau:
Với maven thì eclipse tự động download thư viện JSTL về cho các bạn khi đặt đoạn code trên trong file pom.xml, kiểm tra thư viện trong thư mục WEB-INF/lib:
3. Các thư viện thẻ chuẩn của Standard Tag Library (JSTL)
Chức năng | Mô tả – Khai báo |
Các thẻ cơ bản(Core Tags) | Chứa các lệnh điều khiển như như if, choose when otherwise,vòng lặp như forEach…. Để sử dụng JSTL core tags, bạn cần khai báo vào trong trang JSP đang sử dụng như sau: |
Các thẻ định dạng và địa phương hóa (quốc tế hóa).
(Formatting and Localization Tags) |
Thông thường loại thẻ này dùng để định dạng và quốc tế hóa, thường sử dụng như để định dạng số, ngày tháng năm…muốn sử dụng bạn cần khai báo vào trong trang JSP đang sử dụng như sau: |
Các thẻ SQL(SQL Tags) | Các thẻ JSTL SQL cung cấp các hỗ trợ cho việc tương tác với cơ sở dữ liệu quan hệ như MySql, SQL server, Oracle … Thông thường chúng ta sử dụng loại thẻ này để truy xuất CSDL, muốn sử dụng bạn cần khai báo vào trong trang JSP đang sử dụng như sau: |
Các thẻ XML(XML Tags) | Chức năng chính của loại thẻ này là phân tích và đọc dữ liệu từ file XML.Muốn sử dụng bạn cần khai báo vào trong trang JSP đang sử dụng như sau: |
Các thẻ hàm JSTL(JSTL Functions Tags) | Thẻ JSTL cung cấp một số chức năng mà chúng ta có thể sử dụng để thực hiện các toán tử thông dùng, thông thường là String như nối chuỗi… Muốn sử dụng bạn cần khai báo vào trong trang JSP đang sử dụng như sau: |
4. Ý nghĩa các thẻ Standard Tag Library (JSTL)
Core Tags – Các thẻ tandard Tag Library (JSTL) cơ bản
Tên thẻ | Ý nghĩa |
Catch những exception xảy ra trong code body | |
Chọn 1 trong nhiều đoạn mã để thi hành khi thỏa mãn điều kiện nào đó | |
Vòng lặp quét hết tập hợp nào đó | |
Vòng lặp quét hết 1 chuỗi nào đó theo chuỗi phân cách | |
Thi hành đoạn code khi thỏa mãn điều kiện | |
Import một URL nào đó | |
Xác định giá trị mặc định cho | |
Gửi output cho JspWriter hiện hành | |
Xác định 1 tham số URL cho hay | |
Điều hướng request sang URL mới | |
Xóa 1 đối tượng trong 1 scope nào đó | |
Tạo 1 đối tượng trong 1 scope nào đó | |
Tạo 1 URL | |
Khai báo điều kiện trong |
Các thẻ định dạng và địa phương hóa – Formatting Action:
Tên thẻ | Ý nghĩa |
Xác định resoure bundle cho các messge đi kèm trong thẻ fmt:bundle | |
Xác định resoure bundle và gán vào 1 biến để dùng sau này | |
Định dạng ngày theo 1 vùng địa lý nào đó | |
Định dạng số theo 1 vùng địa lý nào đó | |
Truy xuất vào 1 message trong bundle |
Các thẻ SQL (SQL Tags) trong JSTL
Tạo một DataSource đơn giản chỉ thích hợp cho prototype | |
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ự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 | |
Thiết lập một parameter trong một lệnh SQL tới giá trị đã xác định | |
Thiết lập một parameter trong một lệnh SQL tới giá trị java.util.Date đã xác định | |
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 |
Các thẻ XML (XML Tags) trong JSTL
Giống , nhưng dành cho các XPath Expression | |
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ẻ | |
Thiết lập một biến tới giá trị của một XPath expression | |
Ướ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 | |
Lặp qua các node trong một tài liệu XML | |
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 và trong JSTL | |
Thẻ phụ của mà bao phần thân thẻ nếu Expression được ước lượng là ‘true’ | |
Thẻ phụ của mà theo sau các thẻ và chỉ chạy khi nếu tất cả điều kiện trước là ‘false’ | |
Áp dụng một phép biến đổi XSL trên một tài liệu XML | |
Sử dụng cùng với thẻ transform để thiết lập một parameter trong XSLT stylesheet |
Các thẻ hàm JSTL(JSTL Functions Tags)
fn:contains() trong JSTL | Kiểm tra nếu một chuỗi input chứa chuỗi phụ đã cho |
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ữ |
fn:endsWith() trong JSTL | Kiểm tra nếu một chuỗi input kết thúc với suffix đã cho |
fn:escapeXml() trong JSTL | Các ký tự thoát mà có thể được phiên dịch như XML markup |
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ụ |
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 |
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 |
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 |
fn:split() trong JSTL | Chia một chuỗi thành một mảng các chuỗi phụ |
fn:startsWith() trong JSTL | Kiểm tra nếu một chuỗi input bắt đầu với prefix đã cho |
fn:substring() trong JSTL | Trả về một tập con của một chuỗi |
fn:substringAfter() trong JSTL | Trả về một tập con của một chuỗi ở sau một chuỗi phụ đã cho |
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 |
fn:toLowerCase() trong JSTL | Biến đổi tất cả ký tự của một chuỗi thành chữ thường |
fn:toUpperCase() trong JSTL | Biến đổi tất cả ký tự của một chuỗi thành chữ hoa |
fn:trim() trong JSTL | Gỡ bỏ các khoảng trống trắng từ hai đầu của một chuỗi |
5. Áp dụng JSP Standard Tag Library (JSTL) quá các ví dụ
Trong phần này, tôi sẽ hướng dẫn các bạn những ví dụ cụ thể về JSTL trong jsp với phần core jstl, những phần khác cũng hoàn toàn tương tự cách sử dụng: