我試圖訪問一個像這樣的訪問列表:有例外通過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 –