jsp中<c:forEach>的应用

在jsp页面回显数据时,经常需要用到

<c:forEach></c:forEach>

一般用于遍历回显集合中的多条数据,但是它的用法有点复杂,所以在这里总结一下。


forEach属性说明

这里写图片描述


list集合

1.现有许多书籍信息的集合list存入session,list内容如下:
Book类属性:
bookId,bookName,bookPrice,bookAuthor,bookIntroduction。

将一下五本书存进集合list中:
List<Book> list=new ArrayList<Book>();
list.add(new Book(1,"西游记",55,"吴承恩","四大名著之一");
list.add(new Book(2,"红楼梦",52,"曹雪芹","四大名著之一");
list.add(new Book(3,"三国演义",68,"罗贯中","四大名著之一");
list.add(new Book(4,"水浒传",75,"施耐庵","四大名著之一");

将list存进session
request.getSession.setAttribute("list",list);
2.现在要求将所有书籍展示在jsp中的书籍清单上

伪代码如下

<table>
    <tr>
        <td>图书编号/td>
        <td>书名</td>
        <td>价格</td>
        <td>作者</td>
        <td>简介</td>
    </tr>
    <c:forEach var="b" items="${list}">
    <tr>
        <td>${b.bookId}</td>
        <td>${b.bookName}</td>
        <td>${b.bookPrice}</td>
        <td>${b.bookAuthor}</td>
        <td>${b.bookIntroduction}</td>
    </tr>
    </c:forEach>

</table>

forEach属性说明:

  • var:集合中取出来的一个个元素,它的值可以任意取,用于代表集合中的单个元素。这里的b就代表list集合中的一本书。

  • items:值为集合,但必须使用EL表达式取出


map集合

若map集合为

Map<Book,Integer>  Book为书类,Integer为整数(代表数的库存数量)

同样将上面四本书以及它们的库存放入集合map中,那么如何在jsp中展示呢呢?

伪代码如下:

<table>
    <tr>
        <td>图书编号/td>
        <td>书名</td>
        <td>价格</td>
        <td>作者</td>
        <td>简介</td>
        <td>库存数量</td>
    </tr>
    <c:forEach var="b" items="${map}">
    <tr>
        <td>${b.key.bookId}</td>
        <td>${b.key.bookName}</td>
        <td>${b.key.bookPrice}</td>
        <td>${b.key.bookAuthor}</td>
        <td>${b.key.bookIntroduction}</td>
        <td>${b.value}</td>
    </tr>
    </c:forEach>
</table>

参数说明:var中的m,相当于map.entrySet()中取出的数据,m代表一个组键值对,这里键为book,值为书的数量。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值