51

HashMapキーに基づいて値を取得したい。

HashMap<String, ArrayList<String>> map 
    = new HashMap<String, ArrayList<String>>();
ArrayList<String> arrayList = new ArrayList<String>();

map.put("key", arrayList);
request.setAttribute("key", map);

私がしたことは

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map.value}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>

しかし、それはすべてを印刷しているようです。私がやりたいことは、次のようなキーに依存する値を取得することです:hash.keyまたは何か

更新:
私はこのようなことをしましたが、それでも機能しません

<c:forEach var="map" items="${requestScope.key}">
    <c:forEach var="hash" items="${map['key']}">
        <option><c:out value="${hash}"/></option>
    </c:forEach>
</c:forEach>

と StackTrace:Property 'External' not found on type java.util.HashMap$Entry
本当にそのようなキーがあると確信しています。

4

3 に答える 3

94

マップ内の 1 つのエントリの値を取得するだけの場合は、コレクションをループする必要はまったくありません。gautum の応答を少し単純化すると、次のように名前付きマップ エントリの値を取得できます。

<c:out value="${map['key']}"/>

ここで、'map' はコレクション、'key' は値を抽出しようとしている文字列キーです。

于 2013-10-02T13:25:20.540 に答える
4

以下のコードを試していただけますか

<c:forEach var="hash" items="${map['key']}">
        <option><c:out value="${hash}"/></option>
  </c:forEach>
于 2013-09-13T18:56:45.630 に答える