1. 程式人生 > >JSTL與EL表示式

JSTL與EL表示式

迴圈遍歷集合
1、在jsp中引入標準函式宣告
<span style="font-size:14px;"><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%></span>

2、若要判斷集合的大小,則需要引入如下宣告
<span style="font-size:14px;"><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %></span>

3、如何使用jstl判斷集合是否為空
${user}為集合,user為集合名
<span style="font-size:14px;"><c:if test="${empty user}">無資訊!</c:if>為空
<c:if test="${!empty user}">其它</c:if>非空</span>

4、如何取得集合的大小
${fn:length(集合名<如果是session中的集合則應該加上sessionScope.鍵>)}
<span style="font-size:14px;">${fn:length(map)}</span>

5、如何取得儲存在session中的物件?
${sessionScope.鍵.物件屬性}


6、varStatus顯示迴圈變數的狀態
例:<tag:forEach var="currentFood" items="${sessionScope.foods}" varStatus="status"
<span style="font-size:14px;"><tag:if test="${status%2==1}">
.....................
</tag:if>
</tag:forEach></span>
其中status這個變數就記錄了迴圈變數的狀態


7、如何遍歷Map集合
<span style="font-size:14px;"><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></span>


遍歷Map集合的值:
foodmap:儲存session中的map
foodmap.value:取得map的值,即獲取儲存在map中的一個物件
要獲取物件中的資料,必須用foodmap.value.quantity去點物件的屬性(quantity就是物件的屬性)
8、物件屬性為空顯示預設值
<span style="font-size:14px;"><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></span>