JSTL迭代列表

时间:2019-06-25 08:20:12

标签: java spring jstl

我上了这个课:

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>

在浏览器中的inspect(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中没有打印?

1 个答案:

答案 0 :(得分:1)

能否请您提供更多详细信息(控制器代码,html页面标签...)。 我还是有一点要与您分享:

  • 在实体/ 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}"/>