对不起,我知道这似乎与其他问题相似,但是我仍然无法解决问题。
我将LinkedHashMap<Long,ExperimentMetadata> metadata
设置为会话属性。 (ExperimentMetadata是一个Javabean。)我想从其键为参数metadata_key的特定bean中获取一个属性。但是当我尝试直接获得此信息时,例如
<c:out value="${metadata[param.metadata_key].name}" />
结果为空白。
但是,当我遍历整个地图时,它可以很好地工作,例如
<c:forEach items="${metadata}" var="exp">
<c:if test="${exp.key eq param.metadata_key}">
<c:out value="${exp.value.name}" />
</c:if>
</c:forEach>
我可以这样做,但这有点违反了使用哈希图的目的。如果我这样做也可以使用
<c:out value="${metadata[1].name}" />
任何人都可以帮助建议问题所在以及如何解决?谢谢!
嘿,我刚想通!我认为,因为metadata_key是一个参数,所以EL会将其读取为字符串,而不是很长的时间。强迫它考虑数字使它起作用,例如
<c:out value="${metadata[param.metadata_key*1].name}" />
我感到非常自豪。 ;)