我试图访问一个像这样的访问列表:有例外通过JSTL
我传递给JSP页面
the list through request.setAttribute("list", list);
,并尝试访问
<c:foreach items="${list}" var="element"}>
<li> ${element.name} ${element.price} </li>
</c:foreach>
但我得到NumberFormatException。我如何正确访问列表?
我试图访问一个像这样的访问列表:有例外通过JSTL
我传递给JSP页面
the list through request.setAttribute("list", list);
,并尝试访问
<c:foreach items="${list}" var="element"}>
<li> ${element.name} ${element.price} </li>
</c:foreach>
但我得到NumberFormatException。我如何正确访问列表?
如果您只从表中选择几列,JPA将为返回的每一行返回一个对象数组。即它将返回一个List<Object[]>
对象。如果你想取回Route
对象的列表,你可以在Route
类中编写一个构造函数,该构造函数接受两个值(name和pric,并在构造函数中适当地设置值),然后可以像下面那样在JPA查询中使用构造函数获取路由对象: select new yourpackage.Route(name, price) from Route
,我们在您JSTL两个问题:
<c:foreach items="${list}" var="element"}>
...
</c:foreach>
c:forEach
不c:foreach
}
到底。它应该是这样的:
<c:forEach items="${list}" var="element">
...
</c:forEach>
有两个选项。根据需要尝试任何一种。
Object[]
然后使用${element[0]}
Route
然后使用${element['name']}
或${element.name}
或${element.getName()}
。确保Route
类包含name
作为实例变量与getter &设置方法。
您的'List'包含Object []对象,而不是'Route'对象。你是如何破坏类型安全的? –
这个问题相当复杂。我会试着更好地解释它。我通过JPA查询获取列表,其中只有表Route的两列。所以如果我只有两列,列表不应该是路由元素,而是什么? –
我认为,要正确解决问题,我应该按照这个例子http://stackoverflow.com/questions/17202334/jpa-entity-manager-select-many-columns-and-get-result-list-custom-objects –