JSTL 迭代列表
JSTL iterate list
我有这个 class:
public class Orders{
private Integer id;
private String name;
//getters/setters
}
在控制器中我将 List<Orders>
传递给 jsp
:
@RequestMapping(value = "/orders")
public ModelAndView orders(){
List<Orders> orders = ...//get list from db
//print list in console
orders.forEach(e -> System.out.println(e.getId() + " - " + e.getName()));
//print -> 1 - name1 ; 2 - name2
return new ModelAndView("orders", "orders", orders);
}
在jsp
中这样使用:
${orders.size()}
<c:forEach items="${orders}" var="order">
<c:out value="${order.getId()}"></c:out>
</c:forEach>
在浏览器中检查(html 代码)如下所示:
"2"
<c:foreach items="[com.web.entity.Orders@21e16dd6,
com.web.entity.Orders@52a33913]" var="order">
<c:out value=""></c:out>
</c:foreach>
我通过在控制台中打印列表在控制器中进行了测试,一切正常。
为什么在jsp中没有打印出来?
能否提供更多详细信息(控制器代码、html 页面标签...)。
我还有一些要点要与您分享:
- 在 Entity/POJO.
中始终使用 toString 方法
- 使用order.id代替order.getId()
- 确保您的 HTML 页面顶部有 JSTL 核心标记:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 尝试使用简单的 c:out 标签:
<c:out value="${order.id}"/>
我有这个 class:
public class Orders{
private Integer id;
private String name;
//getters/setters
}
在控制器中我将 List<Orders>
传递给 jsp
:
@RequestMapping(value = "/orders")
public ModelAndView orders(){
List<Orders> orders = ...//get list from db
//print list in console
orders.forEach(e -> System.out.println(e.getId() + " - " + e.getName()));
//print -> 1 - name1 ; 2 - name2
return new ModelAndView("orders", "orders", orders);
}
在jsp
中这样使用:
${orders.size()}
<c:forEach items="${orders}" var="order">
<c:out value="${order.getId()}"></c:out>
</c:forEach>
在浏览器中检查(html 代码)如下所示:
"2"
<c:foreach items="[com.web.entity.Orders@21e16dd6,
com.web.entity.Orders@52a33913]" var="order">
<c:out value=""></c:out>
</c:foreach>
我通过在控制台中打印列表在控制器中进行了测试,一切正常。
为什么在jsp中没有打印出来?
能否提供更多详细信息(控制器代码、html 页面标签...)。 我还有一些要点要与您分享:
- 在 Entity/POJO. 中始终使用 toString 方法
- 使用order.id代替order.getId()
- 确保您的 HTML 页面顶部有 JSTL 核心标记:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 尝试使用简单的 c:out 标签:
<c:out value="${order.id}"/>