【发布时间】:2014-02-27 21:33:22
【问题描述】:
这段代码过去可以正常工作,但我只是彻底检查了很多底层 Java 代码,现在它不再工作了。我有一个带有值的 bean:
<c:forEach items="${actionBean.appliedJobs}" var="aJob" varStatus="loop">
${aJob}
</c:forEach>
打印出来的是:14513=APPLIED 14535=APPLIED 14515=APPLIED 14514=APPLIED。 applyJobs 在 Java 中填充为 HashMap<Long, String>。我也有代码使用整数类型的变量jobId 访问这个数组。
${jobId} //This prints correctly as 14513
${actionBean.appliedJobs[jobId]} //Prints nothing, is likely null
${actionBean.appliedJobs[14513]} //This prints correctly as APPLIED
我认为,上面块中的第三行打印得很好,因为 14513 被解释为 Long。我知道 here 和 here 所描述的 Long/Integer jstl 问题,但是这段代码曾经可以工作的事实让我很失望。
编辑:目前,我为 jobId 创建了一个 getter(),它返回 Long jobId 而不是 Integer jobId,这已经绕过了这个问题,但我仍然想知道根本原因。
【问题讨论】:
-
你找到它的根本原因了吗?
-
@iAmLearning 不,我想我从来没有这样做过,而且我再也无法访问此代码了。