JSTL標籤介紹與使用詳解

什麼是JSTL

JSTL(JavaServerPages Standard Tag Library)JSP標準標籤庫

JSTL通常會與EL表達式合作實現JSP頁面的編碼

使用JSTL的步驟
創建Web工程,選擇JSTL1.1
在JSP頁面添加taglib指令
使用JSTL標籤

……
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
……





通用標籤的使用
set:設置指定範圍內的變量值
out:計算表達式並將結果輸出顯示
remove:刪除指定範圍內的變量


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 


<body>
<c:set var= "example" value="${100+1}" scope="session"  />	


<c:out value="${example}"/>
<c:remove var= "example" scope="session"/>
</body>	

注:

set 標籤用於給變量 ,設置值和作用範圍

scope= "page|request|session|application" 

out 標籤在頁面上顯示信息或變量值 

remove 標籤用於刪除作用域內的變量


通用標籤的應用:


<body>
<!-- 設置之前應該是空值 -->
設置變量之前的值是:msg=<c:out value="${msg}" default="null"/>
<!-- 給變量msg設值 -->
<c:set var="msg" value="Hello ACCP!" scope="page"></c:set>
<!-- 此時msg的值應該是上面設置的"已經不是空值了" -->
設置新值以後:msg=<c:out value="${msg}"></c:out><br>
<!-- 把 msg變量從page範圍內移除-->
<c:remove var="msg" scope="page"/>
<!-- 此時msg的值應該顯示null -->
移除變量msg以後:msg=<c:out value="${msg}“ default="null">
</c:out>
</body>


條件標籤的使用
if:if標籤用於判斷條件是否成,與Java中的If語句做用用相同
語法

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<c:if   test="codition"    var="name"    scope="applicationArea" >
	…
</c:if>	

判斷登陸:
<body>
<c:set var="isLogin" value="${not empty sessionScope.userId}"/>
<c:if test="${not isLogin}">
…登錄表單 使用條件標籤判斷是否已登錄
</form>
</c:if>
<c:if test="${isLogin}">
已經登錄!
</c:if>
</body>
 迭代標籤
實現對集合中對象的遍歷


語法

<c:forEach     items=collection         var=name    begin=start   end=end  step=count>

		…循環體代碼…


</forEach>


items指定要遍
歷的集合對象

var指定集合內數據的變量名稱

begin指定從集合的第幾位開始

end指定迭代到集合的第幾位結束

Step指定迭代的增量

   forEach是for循環語句的變體,實現   
  集合對象(可以是list、數組等)的處理 


 迭代標籤
指定迭代的次數
語法

<c:forEach   var="varName"     varStatus="vatStatusName"    begin="start"   end="end"  step="count">

		…循環體代碼…
</forEach>

 forEach是for循環語句的變體,實現   
  集合對象(可以是list、數組等)的處理 


通過迭代標籤顯示商品列表

<%
	List products = GoodsDao.getAllProducts();
	request.setAttribute("products", products);
%>
…
<!-- 循環輸出商品信息 -->
<c:forEach var="product" items="${requestScope.products}" varStatus="status">
<!-- 如果是偶數行,爲該行換背景顏色 -->
    <tr <c:if test="${status.index % 2 == 1 }">style="background-color:rgb(219,241,212);"</c:if>>
        <td>${product.name }</td>
        <td>${product.area }</td>
        <td>${product.price }</td>
    </tr>
</c:forEach>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章