JSTL でコレクションのサイズを確認するにはどうすればよいですか?
何かのようなもの:
<c:if test="${companies.size() > 0}">
</c:if>
JSTL でコレクションのサイズを確認するにはどうすればよいですか?
何かのようなもの:
<c:if test="${companies.size() > 0}">
</c:if>
<c:if test="${companies.size() > 0}">
</c:if>
この構文は、EL 2.2 以降 (サーブレット 3.0 / JSP 2.2 以降) でのみ機能します。JSP の代わりに JSPX または Facelets を使用しているために XML 解析エラーに直面している場合は、gt
代わりに>
.
<c:if test="${companies.size() gt 0}">
</c:if>
実際に EL 解析エラーに直面している場合は、古い EL バージョンを使用している可能性があります。fn:length()
その場合、JSTL関数が必要になります。ドキュメントから:
length( java.lang.Object) - コレクション内のアイテム数、または文字列内の文字数を返します。
これを JSP ページの上部に配置して、fn
名前空間を許可します。
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
または、JSPX または Facelets を使用している場合:
<... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
そして、ページで次のように使用します。
<p>The length of the companies collection is: ${fn:length(companies)}</p>
コレクションの長さでテストするには:
<c:if test="${fn:length(companies) gt 0}">
</c:if>
または、この特定のケースでは、ELempty
演算子を使用することもできます。
<c:if test="${not empty companies}">
</c:if>
以前のコメントで @Joel と @Mark Chorley が示唆したように:
${empty companies}
これは、null および空のリスト/コレクション/配列をチェックします。長さはわかりませんが、OPの例を満たしています。あなたがそれをやり遂げることができれば、これはタグライブラリとその無愛想な構文をインポートするよりもきれいですgt
.
このように使用できます
${fn:length(numList)}
${fn:length(companies) > 0}
サイズを確認するために使用します。これはブール値を返します