JSTL與EL表達式(為空判斷)
一、循環周遊集合
1、在jsp中引入标準函數聲明
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2、若要判斷集合的大小,則需要引入如下聲明
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
3、如何使用jstl判斷集合是否為空
${user}為集合,user為集合名
<c:if test="${empty user}">無資訊!</c:if>為空
<c:if test="${!empty user}">其它</c:if>非空
4、如何取得集合的大小
${fn:length(集合名<如果是session中的集合則應該加上sessionScope.鍵>)}
${fn:length(map)}
5、如何取得儲存在session中的對象?
${sessionScope.鍵.對象屬性}
6、varStatus顯示循環變量的狀态
例:<tag:forEach var="currentFood" items="${sessionScope.foods}" varStatus="status"
<tag:if test="${status%2==1}">
.....................
</tag:if>
</tag:forEach>
其中status這個變量就記錄了循環變量的狀态
7、如何周遊Map集合
<c:forEach var="foodmap" items="${sessionScope.cart}" varStatus="status">
<c:set var="subtotal" value="${foodmap.value.bean.foodPrice*foodmap.value.quantity}"></c:set>
</c:forEach>
周遊Map集合的值:
foodmap:儲存session中的map
foodmap.value:取得map的值,即擷取儲存在map中的一個對象
要擷取對象中的資料,必須用foodmap.value.quantity去點對象的屬性(quantity就是對象的屬性)
8、對象屬性為空顯示預設值
<c:forEach var="customer" items="${customers}">
<tr>
<td><c:out value="${customer.lastName}"/></td>
<td><c:out value="${customer.phoneHome}" default="no home phone specified"/></td>
<td>
<c:out value="${customer.phoneCell}" escapeXml="false">
<font color="red">no cell phone specified</font>
</c:out>
</td>
</tr>
</c:forEach>