JSTL从Object数组中获取值

时间:2013-04-05 13:21:28

标签: java jsp struts jstl

我的动作类有一个这样的对象数组,

Object[] varCount = (Object[]) countList.get(0); 

我的调试显示了varCount的值。我把这个对象数组放在模型中如下:

model.put("varCount ", varCount );

并在JSP中迭代如下:

<c:forEach var="varCount " items="${model.varCount }" varStatus="loop">
     <tr>
     <td align="center">&nbsp;<c:out value="${varCount[0]}"/></td>
</tr>
     </c:forEach>

我得到了foll错误:

Wrapped exception:
javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${varCount [0]}": Unable to find a value for "0" in object of class "java.math.BigDecimal" using operator "[]" (null)
    at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:306)
    at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:16

如何获取值?

2 个答案:

答案 0 :(得分:1)

使用这样来获取所有数组对象

<c:forEach var="item" items="${model.varCount }" varStatus="loop">
 <tr>
 <td align="center">&nbsp;<c:out value="${item}"/></td>
  </tr>
 </c:forEach>

答案 1 :(得分:1)

model.varCount是一个或多个数组,包含BigDecimal实例。

forEach循环遍历此数组的所有元素。在每次迭代时,当前元素都存储在varCount页面属性中。当前元素是BigDecimal的实例。 varCount[0]因此没有意义。