Phần tử taglib
trong web.xml phục vụ một mục đích khác với chỉ thị taglib
mà bạn có ở trên.
Như David đã nói, chỉ thị taglib
là bắt buộc trên mỗi trang.
Nếu bạn có nhiều trang sử dụng thẻ taglib phổ biến, bạn có thể tắt phím này bằng cách đặt các chỉ lệnh taglib vào tệp bao gồm và bao gồm tệp này mỗi trang. Nhưng không có vấn đề làm thế nào bạn làm điều đó, chỉ thị taglib phải được trên trang nào đó.
Đó thẻ bạn cần phải bao gồm trên mỗi trang trông như thế này:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Nếu bạn có một taglib tùy chỉnh ở một vị trí tùy chỉnh, bạn cũng có thể chỉ định một vị trí tương đối so với gốc webapp:
<%@ taglib prefix="ex" uri="/taglib.tld" %>
Further reading on the taglib directive
các taglib
chỉ thị từ thẻ bản đồ web.xml URI đến vị trí vật lý của taglib của bạn. Nó là tùy chọn kể từ JSP 2.0, vì các thùng chứa tuân thủ sẽ xem xét một tập hợp các vị trí chuẩn để cố gắng tự động khám phá thẻ taglib:/WEB-INF và các thư mục con của nó,/META-INF cũng như các tệp JAR.
Nó trông giống như thế này, trong web.xml:
<taglib>
<taglib-uri>
http://www.example.com/taglib
</taglib-uri>
<taglib-location>
/taglib.tld
</taglib-location>
</taglib>
Và taglib được tham chiếu trong trang JSP như thế này (chỉ thị taglib trên mỗi trang là không thể tránh khỏi!):
<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>
Điều này tương đương với ví dụ thứ hai tôi đã đưa ra cho chỉ thị taglib ở trên. Sự khác biệt lớn nhất là cách bạn trỏ đến vị trí taglib.
This page chứa thêm một chút thông tin.
Đáng tiếc, vì có giải pháp cho việc này: prelude. Sử dụng phần tử nhóm-thuộc tính jsp-config của phần jsp-config và phần tử bao gồm các phần tử mở đầu của nó, bạn có thể chỉ định một đoạn để được bao gồm trong bất kỳ JSP nào theo biểu thức chính quy của riêng bạn. Bạn chỉ có thể đặt bất kỳ chỉ thị taglib nào bạn muốn trong đó. – nitind
Câu hỏi này chắc chắn không nên bị đóng dưới dạng chủ đề. –