00 05JSP學習之JSTL

1 JSTL標籤庫

JSTL是apache對EL表達式的擴展(也就是說JSTL依賴於EL),JSTL是標籤語言。JSTL標籤使用起來非常方便,它與JSP動作標籤一樣,只不過他不是JSP內置的標籤,需要我們自己導包,以及指定標籤庫而已。使用JSTL需要導入jstl的jar包。

JSTL一共包含四大標籤庫:
(1)core:核心標籤庫。
(2)fmt:格式化標籤庫。
(3)sql:數據庫標籤庫。
(4)xml:xml標籤庫。

1、core(c標籤)
(1)out和set
(2)remove
(3)url
(4)if
(5)choose
(6)forEach

2 out、set和remove標籤

1、<c:out>:輸出
(1)value:可以實字符串常量,也可以是EL表達式。
(2)default:當要輸出的內容爲null時,會輸出default指定的內容。
(2)escapeXml:默認值爲true,表示轉義。
2、<c:set>:設置(創建域的屬性)
(1)var:變量名
(2)value:變量值,可以是EL表達式。
(3)scope:域,默認是page,可選值:request、session、application。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="hello" value="one" scope="session" />
<c:out value="${sessionScope.hello }"></c:out>
</body>
</html>

3、<remove>:刪除域變量
(1)var:變量名。
(2)scope:如果不給出scope,表示刪除所有域中該名稱得變量;如果指定了域,那麼只刪除該域得變量。

3 url標籤

1、value:指定一個路徑。他會在路徑前面自動添加項目名。
(1)<c:url value="/index.jsp" />:它會輸出/項目名/index.jsp
(2)子標籤:<c:param>,用來給url後面添加參數,例如:
(3)var:指定變量名,一旦添加了這個屬性,那麼url標籤就不會輸出到頁面,而是把生成的url保存到域中。
(4)scope:它與var一起使用,用來保存url。

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

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:url value="/AServlet" /><br/> <!-- /jsplearn/AServlet -->
${pageContext.request.contextPath }/AServlet <!-- /jsplearn/AServlet -->

<c:url value="/AServlet" var="url" scope="session">
	<c:param name="info">hello</c:param>
</c:url><br/>
<c:out value="${sessionScope.url }" /> <!-- /jsplearn/AServlet?info=hello  -->
</body>
</html>

4 if和choose標籤

1、<c:if>:對應java中的if語句
(1)<c:if test="布爾類型">...</c:if>:當test爲值時,執行標籤體內容。
2、<c:choose>:對應於java中得if/else if/…/else
(1)例如:

<c:choose>
	<c:when test="">...</c:when>
	<c:when test="">...</c:when>
	<c:when test="">...</c:when>
	...
	<c:otherwise>...</c:otherwise>
</c:choose>

5 forEach標籤

他用來循環遍歷數組和集合,而且它還可以用計數的方式來循環。
1、計數方式

<c:forEach var="1" begin="1" end="10" step="2">
	...your code
</c:forEach>

(1)var:循環變量
(2)begin:設置循環變量從幾開始。
(3)end:設置循環變量到幾結束。
(4)step:設置步長。step默認爲1。
3、輸出數組和集合

<c:forEach items="" var="">
	...your code
</c:forEach>

(1)items:指定要遍歷的對象,它可以是一個數組或一個集合
(2)var:把數組或集合中的每個元素賦值給var指定的變量。

6 forEach中的循環狀態變量

可以使用varStatus來創建循環狀態變量。循環狀態變量有如下的屬性:
(1)count:循環元素的個數。
(2)index:循環元素的下標。
(3)first:是否爲第一個元素。
(4)last:是否爲最後一個元素。
(5)current:當前元素。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList,java.util.List" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	List<String> list = new ArrayList<String>();
	list.add("one");
	list.add("two");
	list.add("three");
	pageContext.setAttribute("list", list);
%>
<c:forEach items="${pageScope.list }" varStatus="vs">
	${vs.index } ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>
</c:forEach>
</body>
</html>

7 fmt標籤

它是格式化庫。
1、<fmt:formatData>
使用方式:

<fmt:formatData value="" pattern="" />

(1)value:指定一個Date類型的變量。
(2)pattern:用來指定輸出的模板。例如:yyyy-MM-dd HH:mm:ss。

2、<fmt:formatNumber>
使用方式:

<fmt:formatNumber value="" pattern="" />

(1)pattern="0.00":保留小數點位數,四捨五入,不足以0補位。
(2 )pattern="#.##":保留小數點位數,四捨五入,不足不補位。

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