通过JSTL访问列表时有异常

时间:2014-06-25 15:42:10

标签: java jsp collections jstl

我试图访问这样的内容:

enter image description here

我传递给JSP页面

the list through request.setAttribute("list", list);

并尝试访问

<c:foreach items="${list}" var="element"}>

<li> ${element.name} ${element.price} </li>

</c:foreach>

但是我得到了NumberFormatException。如何正确访问列表?

2 个答案:

答案 0 :(得分:1)

如果只从表中选择几列,JPA将为返回的每一行返回一个对象数组。即它将返回List<Object[]>个对象。如果要返回Route个对象的列表,可以在Route类中编写一个构造函数,该构造函数接受两个值(name和pric,并在构造函数中相应地设置值。然后,您可以使用像下面的JPA查询中的构造函数来获取Route对象: select new yourpackage.Route(name, price) from Route

答案 1 :(得分:0)

您的JSTL有两个问题:

<c:foreach items="${list}" var="element"}>
    ...
</c:foreach>
  1. c:forEach而非c:foreach
  2. 最后还有一个}
  3. 应该是这样的:

    <c:forEach items="${list}" var="element">
         ...
    </c:forEach>
    

    有两种选择。根据需要尝试任何一个。

    1. 如果列表包含Object[],请使用${element[0]}
    2. 如果列表中包含Route,请使用${element['name']}${element.name}${element.getName()}。确保Route类包含name作为实例变量,包含getter&amp; setter方法。