2011-03-08 24 views
0

我有點失去了對如何做到這一點正確,我送一個變量來我在彈簧模型是這樣的:JSP,Java,Spring,迭代HashMap並從其值中調用基本的getter方法?

Map<Integer, Tab2WorkTableDocumentCounts> finalJspList = new HashMap<Integer, Tab2WorkTableDocumentCounts>(); 

Tab2WorkTableDocumentCounts是一個簡單的對象像這樣(getter和setter )

public class Tab2WorkTableDocumentCounts { 

private Integer countTier1; 
private Integer countTier2; 
private Integer countTier3; 
private Integer countTier4; 
private Integer countTier5; 
} 

因此,finalJspList是一個包含一系列對象的散列表,我嘗試調用getter方法。我想下面,但它給IDE在語法錯誤。我想打電話像getCountTier1()爲每個entry.value在散列映射的方法,並將其顯示爲HTML

任何意見,以幫助我澄清這一點,將不勝感激。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> 


<c:forEach items="${finalJspList}" var="finalJspList"> 

        <ul class="cust"> 
         <li class="cust-name">${entry.key}</li> 
         <li class="lvl-1">${fn:entry.value().getCountTier1()}</li> 
         <li class="lvl-2 completed">${fn:entry.value().getCountTier2()}</li> 
         <li class="lvl-3">${fn:entry.value().getCountTier3()}</li> 
         <li class="lvl-4">${fn:entry.value().getCountTier4()}</li> 
         <li class="lvl-5">${fn:entry.value().getCountTier5()}</li> 
         <li class="export"><a href="#"><img src="http://www.liquisdesign.com/stage/jfit/images/export-icon.png" width="20px"></a></li> 
        </ul> 
       </c:forEach> 
+0

如果出現錯誤,請告訴我們錯誤,不要讓我們猜測。 – skaffman 2011-03-08 09:09:32

+0

它的IDE語法錯誤:'這條線找到多個註釋: \t - 功能FN:條目未定義 \t - 該方法GetValue()是未定義的類型 \t String' – Rick 2011-03-08 09:11:19

+0

什麼是你期待'entry'參考? – skaffman 2011-03-08 09:13:15

回答

3
  • 訪問他們的屬性名稱,而不是干將 - ${entry.value.countTier1}
  • 設置var="entry"(而不是finalJspList
  • 擺脫fn:

技術上的,干將將與EL的最新版本中運行,但如果您只是使用屬性名稱,代碼看起來更清晰。

+0

謝謝,就是這樣 – Rick 2011-03-08 09:20:48

0

did <c:out value="${finalJspList.countTier1}" escapeXml="false"/>不工作?

0

我懷疑這是你的意思:

<c:forEach items="${finalJspList}" var="entry"> 

       <ul class="cust"> 
        <li class="cust-name">${entry.key}</li> 
        <li class="lvl-1">${entry.value.countTier1}</li> 
        <li class="lvl-2 completed">${entry.value.countTier2}</li> 
        <li class="lvl-3">${entry.value.countTier3}</li> 
        <li class="lvl-4">${entry.value.countTier4}</li> 
        <li class="lvl-5">${entry.value.countTier5}</li> 
        <li class="export"><a href="#"><img src="http://www.liquisdesign.com/stage/jfit/images/export-icon.png" width="20px"></a></li> 
       </ul> 
      </c:forEach> 

你沒有任何位置聲明entry變量,你需要做的是,在foreach。另外,你不應該在JSTL中調​​用方法,你應該參考屬性名稱,如上所述。