Java 访问HashMap<;长字符串>;在JSP中,使用整数键不再有效

Java 访问HashMap<;长字符串>;在JSP中,使用整数键不再有效,java,jsp,jstl,el,stripes,Java,Jsp,Jstl,El,Stripes,这段代码过去工作得很好,但我只是彻底检查了许多底层Java代码,现在它不再工作了。我有一个带值的bean: <c:forEach items="${actionBean.appliedJobs}" var="aJob" varStatus="loop"> ${aJob} </c:forEach> 上面区块的第三行打印得很好,因为我认为14513被解释为长字符。我知道Long/Integer jstl的问题,正如前面所描述的和所描述的那样,但是这段代码用于工作这一

这段代码过去工作得很好,但我只是彻底检查了许多底层Java代码,现在它不再工作了。我有一个带值的bean:

<c:forEach items="${actionBean.appliedJobs}" var="aJob" varStatus="loop">
    ${aJob}
</c:forEach>
上面区块的第三行打印得很好,因为我认为14513被解释为长字符。我知道Long/Integer jstl的问题,正如前面所描述的和所描述的那样,但是这段代码用于工作这一事实让我很反感


编辑:现在,我已经为jobId创建了一个getter(),它返回一个长jobId而不是整数jobId,并且已经避免了这个问题,但是我仍然想知道根本原因。

您可以执行以下操作来迭代映射的所有元素:

 <c:forEach items="${actionBean.appliedJobs}" var="aJob" varStatus="loop">
            ${aJob.value}
            ${aJob.key}
 </c:forEach>

${aJob.value}
${aJob.key}

javax.el.PropertyNotFoundException:在类型javax.servlet.jsp.jstl.core.LoopTagSupport$1Status上找不到属性“value”
my bad..我使用了varStatus变量而不是var。请使用aJob尝试。valuePrints:
APPLIED
这是exspected的值..如果要打印密钥使用aJob.key我使用forEach作为调试工具,真正的问题发生在
${actionBean.appliedJobs[jobId]}
中。阅读我的编辑了解更多信息,我正在寻找一个根本原因。你知道它的根本原因吗?@iAmLearning不,我想我从来没有这样做过,我再也无法访问此代码。
 <c:forEach items="${actionBean.appliedJobs}" var="aJob" varStatus="loop">
            ${aJob.value}
            ${aJob.key}
 </c:forEach>