web-dev-qa-db-ja.com

jstlを使用してHashMapのサイズを取得する方法

JSTLを使用してマップのサイズを取得する方法はありますか? $ {myMap.size}で試しましたが、機能しません。

15
coder247

JSTL長関数はCollectionで機能しますが、Mapで機能するかどうかはわかりません。試してみる価値があるかもしれません。

7
Qwerky

解決策を得ました:jstl関数を使用します。

<%@taglib prefix="fn" uri="http://Java.Sun.com/jsp/jstl/functions"%>

次に、次のように使用します。

  <c:if test="${fn:length(myMap) > 1 }">
29
coder247
${myMap.size}

eLパーサーによってmyMap.getSize()に変換されるため、機能していません。

試してください:

${myMap.size()}

動作するはずです。

11
The-MeLLeR

JSTLハッシュマップサイズを見つけるための例を見ることができます ここ

ここではHashMapsizeメソッドを使用しています

${numMap.size()}
0
Rose

カウントだけを出力しようとしている場合は、fnタグを使用する必要があります。ただし、マップ内のすべてのアイテムを処理する場合、または使用可能なアイテムの数に基づいて何かを実行する場合は、コアJSTLタグのみを使用してこれを試してください。

<c:if test="${mapVar != null}"/>
<c:forEach var="mapEntry" items="${mapVar}">
<!-- if there is any entry in the map do something -->
</c:forEach>
</c:if>

上記はJavaコードと同等です

if (maVar != null && mapVar.size() >= 1) {
    // do something
}

はい、このようなサイズを印刷することはできませんが、存在するアイテムの情報を処理することはできます。

私はこのソリューションを好みました。SunのURLがエラーになり、上記がうまくいったからです。

0
ha9u63ar