在一個servlet我有:JSTL和HashMap的工作不
HashMap eventsByDayNo = new HashMap();
eventsByDayNo.put (new Integer(12), "day 12 info");
eventsByDayNo.put (new Integer(11), "day 11 info");
eventsByDayNo.put (new Integer(15), "day 15 info");
eventsByDayNo.put (new Integer(16), "day 16 info");
request.setAttribute("eventsByDayNo", eventsByDayNo);
request.setAttribute("daysInMonth", new Integer(31));
並在JSP我:
<c:forEach var="dn" begin="1" end="${daysInMonth}" step="1" varStatus="status">
Day Number=<c:out value="${dn}" /> Value=<c:out value="${eventsByDayNo[dn]}" /><br>
</c:forEach>
以上JSTL工作正常,但如果我嘗試抵消天數<c:out value="${eventsByDayNo[dn+3]}" />
沒有打印任何散列映射條目。任何答案爲什麼不呢?
以上只是我實際應用的概念證明。
你是對的,我期待整數,但它是一個很長的dn = 1 dnplus3 = 4 class = java.lang.Long。 – jeff 2010-10-12 21:35:34
對於參考,*表達式語言規範版本2.2 *在第1.7.1節中定義了運算符'+',在這種情況下導致'Long'值。 – 2010-10-13 22:01:58
只是認爲這是一個強大的打字反擊的例子,而不是防止錯誤,因爲它應該這樣做,沒有做用戶期望的。 – stivlo 2011-06-10 13:01:51