JSP JSTL日常使用集锦

根据自己使用不断积累更新

一、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].属性}

 

posted @ 2017-10-26 10:03  凉紫筱  阅读(154)  评论(0编辑  收藏  举报