2017-02-13 21 views
0

У меня проблема. Я пробовал все решения, которые я нашел в Stackoverflow. У меня есть эта Java часть кода:Извлечь значение из HashMap на странице JSP

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-код, это немного расплывчато. A [mcve] может помочь, с вводом/выводом – AxelH

+0

Я просто передаю на страницу JSP карту с ключом {ключ, значение}, где ключ - код продукта, а значение - объект (называемый ArchitetturaModel), связанный с продуктом. – sharkbait

ответ

1

Там действительно нет необходимости назначить переменные карты с тем же именем переменной

Я считаю, вы можете получить доступ к значениям карты только с помощью $ {карты [ключ]}.

Вы уверены, что у архитектурного ... есть геттер с именем getNome() и getLine ...()?

Что такое ошибки? Если их нет, может быть переменная просто пустой

Извините за ..., имена слишком долго

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

 Смежные вопросы

  • Нет связанных вопросов^_^