在JSTL中使用varStatus时,如何访问列表<class>的字段?</class>

时间:2013-07-27 00:24:54

标签: java jsp jstl

我有两个arraylists,并希望以表格格式打印它们。我尝试了以下内容并获得了一个异常读取 - java.lang.NumberFormatException:对于输入字符串:“ss”

JAVA代码

List<Territory> terrList = new ArrayList<Territory>(); 
List<ProspCount> prospCountList = new ArrayList<ProspCount>();
model.put("terrList",terrList);     
model.put("prospCountList",prospCountList );

Territory类的结构

String terr;

ProspCount类的结构

private Integer taggedCount;
private Integer ss;
private Integer nss;
private Integer ssA;

JSP代码:

 <c:forEach items="${model.terrList}" var="terr" varStatus = "loop">
<tr>
   <td>${terr}</td>
     <td> ${model.prospCountList.ss[loop.index]} </td>
     <td> ${model.prospCountList.nss[loop.index]} </td>
      .....
      .....
</tr>    
</c:forEach> 

2 个答案:

答案 0 :(得分:2)

您正在遍历terrList成员,而不是propsCountList成员。使用${model.propsCountList[loop.index].ss

答案 1 :(得分:0)

我同意drvdijk的回答。由于model.prospCountList.ss不是列表/数组,因此尝试访问此列表/数组的索引是没有意义的。

我建议您正确地格式化要在Java代码中直接迭代的内容。

List<Territory> terrList = new ArrayList<Territory>(); 
List<ProspCount> prospCountList = new ArrayList<ProspCount>();

难道你不能创造这样的东西吗?

List<TerritoryWithProspCount> terrList = new ArrayList<TerritoryWithProspCount>(); 

这将使JSP代码更具可读性。