最初にそのための EL 関数を作成します。Facelets のキックオフの例はこの回答で見つけることができ、JSP の別のキックオフの例はEL wiki ページの下部付近にあります。
public static boolean contains(Object[] array, Object item) {
if (array == null || item == null) {
return false;
}
for (Object object : array) {
if (object != null && object.toString().equals(item.toString())) {
return true;
}
}
return false;
}
(または、JSF ユーティリティ ライブラリOmniFacesを使用している場合は、その を使用しますof:contains()
が、非推奨の JSP ではなく、Facelets でのみ機能します)
次に、次のように使用します。
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@taglib prefix="my" uri="http://my.example.com/functions" %>
...
${my:contains(fn:split('foo,bar,john,doe', ','), myvar)}
(これは、区切り文字をfn:split()
に変換する単なるトリックです)String
String[]
区切り文字列を直接渡すことでさらに単純化/特殊化し、関数で分割を実行して、次のようにすることもできます。
${my:contains('foo,bar,john,doe', myvar)}