2011-03-08 38 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中调​​用方法,你应该参考属性名称,如上所述。