2017-08-28 65 views
0

這是它創建了一個多維的HashMap我的Java代碼:JSTL循環通過多維的HashMap

HashMap<String, HashMap<String, String>> data = new HashMap<String, HashMap<String, String>>(); 

for (App app : apps) { 
    String randomVar = ""; 

    data.put(String.valueOf(app.getId()), new HashMap<String, String>()); 
    data.get(String.valueOf(app.getId())).put("name", app.getName()); 
    data.get(String.valueOf(app.getId())).put("info", randomVar); 
} 

這是我.jsp文件:

<c:forEach items="${data}" var="items"> 
    <c:forEach items="${items}" var="item"> 
     <div class="col-md-6"> 
      <div class="overview"> 
       <a href="/goto/${items.key}" class="minimal" title="Switch to: ${item.name}"> 
        ${item.randomVar} 
        <span>${item.name}</span> 
       </a> 
      </div> 
     </div> 
    </c:forEach> 
</c:forEach> 

不幸的是,我不能在循環jsp文件的工作。問題在於第二個循環。我無法達到這些變數。無論我嘗試如何,我收到的錯誤如Don't know how to iterate over supplied 'items' in <forEach>items.name不存在等等。我怎樣才能正確地循環哈希映射?

回答

1

是不是應該是items="${items.value}

+0

這給了我這個錯誤:'javax.el.PropertyNotFoundException:Property 'name'not found on type java.util.HashMap $ Node' – Jordy

+0

@Jordy是的,它也是'$ {item.key}'而不是'$ {item.name}'和'$ {item.value.name}'和'$ {item.value.info}' –

+0

@Jordy no,'$ {item.key}'將會有'name'和' info','$ {item.value}'會有app.getName()和randomVar(當然,'$ {item.name}'和'$ {item.randomVar}'不存在)。 –