从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)}

我怎么也得写采取从地图的价值?

+0

你可以解释只是一个位java代码,这有点含糊。一个[mcve]可以提供帮助,输入/输出 – AxelH

+0

我只需将一个带有{key,value}的映射传递给JSP页面,其中key是产品代码,值是与产品相关的Object(称为ArchitetturaModel)。 – sharkbait

实在是没有必要指定地图的变量同名变量

我相信你可以访问只使用$映射值{地图[关键]}。

你确定建筑....有名字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}"/>