web-dev-qa-db-ja.com

HashMapで<c:forEach>を使用します

サーブレット属性をHashMapオブジェクトに設定するJavaクラスがあります。

_request.setAttribute("types", da.getSecurityTypes());
_

requestはHttpServletRequestオブジェクトであり、da.getSecurityTypes()はHashMapオブジェクトを返します。

C:foreachまたは他のJSTLタグを使用してHashMapコレクションを経由する方法はありますか?

私が考えていた:

_ <c:forEach var="type" items="${types}">
                 ...
     </c:forEach>
_

または、それができない場合、これを処理するカスタムタグをどのように作成しますか?

JSPページのJavaコードに頼ることは私の最後の手段であり、JSTLでこれが可能かどうかを知りたいです。

ありがとう、ジョナス。

49
jonasespelita

はい、これは完全に受け入れられます。

<c:forEach>を使用してMapを反復処理する場合、反復の各項目はMap.Entryのインスタンスです。あなたの例を考えると:

<c:forEach var="type" items="${types}">
   Key is ${type.key}
   Value is ${type.value}
</c:forEach>
112
skaffman

機能します。type.keyおよびtype.valueループで遊ぶ。

5
daveb