我有问题。我尝试了在Stackoverflow上找到的各种解决方案。 我有这部分Java代码:
Map<String, ArchitetturaUnitaModel> map = new HashMap<String, ArchitetturaUnitaModel>();
if(!CollectionUtils.isEmpty(searchPageData.getResults())){
for(ProductData result:searchPageData.getResults()){
if(result instanceof DocumentoData){
String unitaName = ((DocumentoData) result).getUnita();
ArchitetturaUnitaModel unita = fondoFacade.getUnitaByNameUnita(unitaName);
if(!map.containsKey(result.getCode())){
map.put(result.getCode(), unita);
}
}
}
}
model.addAttribute("map", map);
在JSP页面中,我有这部分代码,我尝试从地图中检索一些数据,传递键值:
<c:set value="${map}" var="map"/>
<c:forEach items="${searchPageData.results}" var="product" varStatus="status">
<c:set value="${product.code}" var="pcode"/>
<c:set value="${map.get(pcode)}" var="unita"/>
<b><spring:theme code="text.titolounita" />: </b><c:out value="${unita.nome}"/> <br>
<b><spring:theme code="text.documento" />: </b>${product.name} <br>
<b><spring:theme code="text.lineaferroviaria" />: </b><c:out value="${unita.lineaFerroviaria}"/>
</c:forEach>
但我无法从价值 unita 中获得任何东西。 如果我打印地图变量,我得到这个:
{123123123 = ArchitetturaUnitaModel(8796158591118)}
我如何编写以从地图中获取值?
答案 0 :(得分:1)
确实没有必要将map的变量赋值给同名变量
我相信您只需使用$ {map [key]}即可访问地图值。
你确定Architectural ....有getter名字getNome()和getLine ......()吗?
什么是错误?如果没有,可能变量只是空的
抱歉......名字太长了
答案 1 :(得分:0)
我用这种方式解决了这个问题:
<c:set value="${mappa}" var="mappa"/>
<c:set value="${product.code}" var="pcode"/>
<b><spring:theme code="text.titolounita" />: </b><c:out value="${mappa[pcode].name}"/> <br>
<b><spring:theme code="text.documento" />: </b>${product.name} <br>
<b><spring:theme code="text.lineaferroviaria" />: </b><c:out value="${mappa[pcode].lineaFerroviaria}"/>