使用整数键在 JSP 中访问 HashMap<Long,String> 不再有效



这段代码以前工作得很好,但我刚刚修改了很多底层的Java代码,现在它不再工作了。我有一个有价值观的豆子:

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

这将打印出来:14513=APPLIED 14535=APPLIED 14515=APPLIED 14514=APPLIED . appliedJobs在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 被解释为长。我知道这里和这里描述的长/整数jstl问题,但是这段代码曾经工作的事实让我很失望。

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

您可以执行以下操作来遍历 Map 的所有元素:

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

相关内容

最新更新