không có tính năng tích hợp để kiểm tra điều đó - những gì bạn sẽ làm là viết hàm tld của riêng bạn có danh sách và một mục và gọi phương thức contains() của danh sách. ví dụ.
//in your own WEB-INF/custom-functions.tld file add this
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0"
>
<tlib-version>1.0</tlib-version>
<function>
<name>contains</name>
<function-class>com.Yourclass</function-class>
<function-signature>boolean contains(java.util.List,java.lang.Object)
</function-signature>
</function>
</taglib>
Sau đó tạo một lớp được gọi là Lớp của bạn và thêm phương thức tĩnh có tên chứa chữ ký ở trên. Tôi chắc chắn việc thực hiện các phương pháp đó là khá tự giải thích:
package com; // just to illustrate how to represent the package in the tld
public class Yourclass {
public static boolean contains(List list, Object o) {
return list.contains(o);
}
}
Sau đó, bạn có thể sử dụng nó trong jsp của bạn:
<%@ taglib uri="/WEB-INF/custom-functions.tld" prefix="fn" %>
<c:if test="${ fn:contains(mylist, myValue) }">style='display:none;'</c:if>
Thẻ có thể được sử dụng từ bất kỳ JSP trong trang web.
chỉnh sửa: biết thêm về các tập tin TLD - more info here
Lưu ý rằng cú pháp cho các công trình như intented từ EL 2.2 (trong trường hợp mang như một phần của Servlet 3.0/JSP 2.2 được phát hành tháng 12 năm 2009). – BalusC
bản sao có thể có của [Bộ và Danh sách JSTL - kiểm tra xem mục có tồn tại trong Tập hợp hay không] (http://stackoverflow.com/questions/1076679/jstl-sets-and-lists-checking-if-item-exists-in-a -set) –