241

JSTL でコレクションのサイズを確認するにはどうすればよいですか?

何かのようなもの:

<c:if test="${companies.size() > 0}">

</c:if>
4

4 に答える 4

445
<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>
于 2009-05-12T09:31:12.780 に答える
30

以前のコメントで @Joel と @Mark Chorley が示唆したように:

${empty companies}

これは、null および空のリスト/コレクション/配列をチェックします。長さはわかりませんが、OPの例を満たしています。あなたがそれをやり遂げることができれば、これはタグライブラリとその無愛想な構文をインポートするよりもきれいですgt.

于 2014-06-12T10:38:16.177 に答える
13

このように使用できます

${fn:length(numList)}
于 2012-04-29T13:54:24.200 に答える
-2

${fn:length(companies) > 0}サイズを確認するために使用します。これはブール値を返します

于 2014-03-21T07:03:29.397 に答える