jsp下读取c:forEach的循环次数,以及内部循环数据累加统计等
来源:互联网 发布:网络歌手名单大全男 编辑:程序博客网 时间:2024/05/16 16:08
前言
近日接触到一个比较旧的项目,框架使用的是Status2+Spring3,前端jsp大量内嵌了java代码,几乎未使用jstl和el表达式。
个人习惯原因,已经很不喜欢使用这种通过写java代码在jsp上做逻辑控制的方式,很不好让别人读代码。
表达式循环有几种方式,这里只说c:forEach。
在网上看了一下,没有自己需要的,自己写一个。
场景需求:
某用户登录后查看自己的购物车,及时显示其购物车内的商品种类和合计金额。
原理:
自己创建jstl变量,存储自己需要统计的内容放到循环体里执行即可。
定义2个变量,row_total统计金额,row_count统计数量
<c:set var="row_total" value="0"></c:set><c:set var="row_count" value="0"></c:set>
之后自己在循环体里进行运算,这个是自加1
<c:set var="row_count" value="${row_count+1}" />
这个是进行运算
<c:set var="row_total" value="${row_total +(productprice*rowData.productnum) }" />
之后在循环体外直接使用表达式,就是你需要的统计数据了
${row_total } ${row_count }
然后备注一下,jsp页面头请引入jstl标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
补充1
上面的例子上使用到了下面的标签,作用是格式化数字的
fmt:parseNumber
头部需引入
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
补充2
在c:foreach里同样也有统计字段,可以使用该字段进行统计,但只能在循环体内,完整用法如下,使用${status.count}可以获取循环次数,不过需要注意一下,它的计数是从1开始,而不是0
<c:forEach var=”data" items=”list" varStatus=”status”> <c:out value=”${status.current}”/> 当前对象 <c:out value=”${status.index}”/> 此次迭代的索引 <c:out value=”${status.count}”/> 已经迭代的数量 <c:out value=”${status.first}”/> 是否是第一个迭代对象 <c:out value=”${status.last}”/> 是否是最后一个迭代对象</c:forEach>
下面是完整例子,用于实现购物车商品的展现与统计
<c:set var="row_total" value="0"></c:set><c:set var="row_count" value="0"></c:set><c:forEach var="rowData" items="${shopping_data}"> <fmt:parseNumber var="productprice" value="${rowData.productprice}" type="number" /> <c:set var="row_total" value="${row_total + (productprice*rowData.productnum) }" /> <c:set var="row_count" value="${row_count+1}" /><li> <div class="p-img fl"> <a href="${path }/productDetail?productId=${rowData.productid }"> <img src="${path }${rowData.f_productimg}" width="50" height="50" alt=""></a> </div> <div class="p-name fl"> <span></span> <a href="${path }/productDetail?productId=${rowData.productid }" title="${rowData.productname}"> ${rowData.productname} </a> </div> </li></c:forEach>
阅读全文
0 0
- jsp下读取c:forEach的循环次数,以及内部循环数据累加统计等
- jsp <c:forEach>循环 以及怎么统计变量的总数量
- <c:foreach>控制循环次数
- foreach获得循环次数
- Smarty 限制foreach的循环次数
- mybatis foreach 语句循环读取map数据
- jsp页面c标签循环map , c:foreach 循环map
- Jsp 标签之<c:foreach>循环
- jsp中forEach循环
- smarty foreach 控制循环次数
- 双重c:forEach 循环
- C:forEach*循环表格~
- <C:forEach>表格循环
- c:forEach 嵌套循环
- 多重c:forEach循环
- c:forEach 循环
- <c:foreach>循环计算
- <c:forEach>终止循环
- 如何选择云服务器
- 树莓派上MJPG-streamer安装过程
- String,StringBuffer与StringBuilder的区别??
- Vuforia+unity3D=AR Demo(初级教程)
- FTP Client setRemoteVerificationEnabled()
- jsp下读取c:forEach的循环次数,以及内部循环数据累加统计等
- 使用SpannableString+EditText图文混排仿为知笔记编辑框
- js-关于异步原理的理解和总结
- 计算时间复杂度
- 利用keras(tensorflow) 做cnn mnist识别
- 类与对象基础总结--继承,多态
- 耦合与内聚的概念
- 说说怎么在GPIO层使用IO方式打开指纹仪和身份证识别器的那些事 --GPIO
- multidex找不到的问题