从JSP页面中的HashMap中检索值

时间:2017-02-13 14:53:38

标签: jsp hashmap

我有问题。我尝试了在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)}

我如何编写以从地图中获取值?

2 个答案:

答案 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}"/>