2017-02-13 2 views
0

Ich habe ein Problem. Ich habe jede Art von Lösung ausprobiert, die ich auf Stackoverflow gefunden habe. Ich habe diese Java Teil Code:Abrufen eines Werts von einer HashMap in JSP-Seite

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); 

In einer JSP-Seite, die ich diesen Teil des Codes haben, wo ich versuche, einige Daten aus der Karte, vorbei an den Schlüsselwert abzurufen:

<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> 

Aber ich kann nichts vom Wert unita erhalten. Wenn ich die Karte Variable drucke ich diese erhalten:

{123123123 = ArchitetturaUnitaModel (8796158591118)}

Wie ich den Wert von der Karte schreiben zu nehmen?

+0

Sie könnte erklären, nur ein bisschen die Java-Code, das ist ein bisschen vage. A [mcve] könnte helfen, mit Eingabe/Ausgabe – AxelH

+0

übergebe ich einfach eine Map mit {key, value} an die JSP-Seite wo key ist der Produktcode und der Wert ist ein Objekt (genannt ArchitetturaModel) in Bezug auf das Produkt. – sharkbait

Antwort

1

Es gibt wirklich keine Notwendigkeit Variable auf denselben Namen zuweisen Variable

Ich glaube, Sie mit $ zugreifen können Kartenwerte nur {Karte [key]}.

Sind Sie sicher, Architectural .... haben Getter mit Namen getNome() und getLine ...()?

Was sind Fehler? Wenn es keine gibt, ist vielleicht Variable nur leere

Sorry für ..., Namen sind einfach zu lang

0

ich dieses Problem auf diese Weise gelöst:

<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}"/> 
Verwandte Themen