根据自己使用不断积累更新
一、JSTL 使用 c:forEach 累加变量值
使用举例如下:
<tbody> <c:set value="0" var="amountTotal"/> <c:forEach items="${medicine.medicineInformationVos}" var="medicine"> <tr> <td>${medicine.code }</td> <td>${medicine.name }</td> <td>${medicine.amount }</td> </tr> <c:set value="${amountTotal+medicine.quantity}" var="amountTotal"/> </c:forEach> <tr> <td></td> <td></td> <td>${amountTotal}</td> </tr> </tbody>
最后一行tr的最后一个td是统计上面循环出来的medicine.amount的总和。
二、jstl对数字的一些格式化操作
可参考 <fmt:formatNumber>标签 的一些用法 :
//比如对传进来的浮点数字${total},进行只保留两位小数操作 <fmt:formatNumber type="number" value="${total}" maxFractionDigits="2"/>
三、forEach循环每行两和三列的显示方法
1.每行两列
<c:forEach items = " ${list} " varStatus = " status " var="medicine"> <c: if test = " ${status.count%2==1} "> <tr> </c: if> <td>${medicine.name }</td> <c: if test = " ${status.count%2==0} "> </tr> </c: if > <c:set var = " v_count " value = " ${status.count} "/> </c:forEach> <c:if test = " ${v_count%2==1} "> <td></td> </tr> </c: if>
2.每行三列
<c:forEach items="${list}" var="medicine" varStatus="status"> <c:if test="${status.count%3==1}"> <tr> </c:if> <td>${medicine.name }</td> <c:if test="${status.count%3==0}"> </tr> </c:if> <c:set var ="v_count" value="${status.count}"/> </c:forEach> <c:if test="${v_count%3==1}"> <td></td> <td></td> </tr> </c:if> <c:if test="${v_count%3==2}"> <td></td> </tr> </c:if>
四、EL表达式 获取list长度/不用循环
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
${fn:length(list名字)} //list的长度
<c:if test="${fn:length(list名字)>1}"> 中间该干嘛干嘛 </c:if>
五、不用循环,EL在List中直接获取第一项的内容
${list[0].属性}