从JSP页面的HashMap中检索值
问题描述:
我遇到问题。我尝试了每种在*上找到的解决方案。 我有这个代码的Java部分:从JSP页面的HashMap中检索值
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)}
我怎么也得写采取从地图的价值?
答
实在是没有必要指定地图的变量同名变量
我相信你可以访问只使用$映射值{地图[关键]}。
你确定建筑....有名字getNome()和getLine ...()的getter吗?
什么是错误?如果没有,也许变量只是空
对不起...,名字只是太长
答
我解决这样这个问题:
<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}"/>
你可以解释只是一个位java代码,这有点含糊。一个[mcve]可以提供帮助,输入/输出 – AxelH
我只需将一个带有{key,value}的映射传递给JSP页面,其中key是产品代码,值是与产品相关的Object(称为ArchitetturaModel)。 – sharkbait