4

以下のことをJSPで開始しfor loopたい-HashSetとHashMapをループして結果を出力したいだけです

private static HashMap<Long, Long> histogram = new HashMap<Long, Long>();
private static Set<Long> keys = histogram.keySet();

for (Long key : keys) {
    Long value = histogram.get(key);
    System.out.println("MEASUREMENT, HG data, " + key + ":" + value);
}

私はSpringMVCを使用しているので、これら2つを追加しましたmodel

model.addAttribute("hashSet", (keys));
model.addAttribute("histogram", (histogram));

そして、私のJSPページでは、上記をエミュレートするためにこのようなことをしJAVA codeていましたが、JSPページに何か問題があるという例外がありました。

<fieldset>
    <legend>Performance Testing:</legend>
        <pre>

            <c:forEach items="${hashSet}" var="entry">
            Key = ${entry.key}, value = ${histogram}.get(${entry.key})<br>
            </c:forEach>


        </pre>
        <br />
</fieldset>

私が得た例外-

Caused by: javax.el.PropertyNotFoundException: Property 'key' not found on type java.lang.Long
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:195)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:172)
    at javax.el.BeanELResolver.property(BeanELResolver.java:281)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)

誰かがこれで私を助けることができますか?

4

1 に答える 1

4

keySetにアクセスvaluesするためにを利用する必要はありませんHashMap。>を繰り返しHashMap使用<c:forEach..すると、を取り戻すEntrySetことができます。これには、次のものを使用できます。-EntrySet#getKey()およびEntrySet#getValue()直接:-

<c:forEach items="${histogram}" var="entry">
     Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>
于 2013-01-30T20:54:45.830 に答える