JSTL核心標籤庫

一. JSTL標籤

1. 簡介

JSTL(全名:java  standard  tag  libarary - java標準標籤庫);

2. 五套標籤庫(重點是前三套)

(1) 核心標籤庫 (c標籤庫) 

(2) 國際化標籤(fmt標籤庫)

(3) EL函數庫(fn函數庫)

(4) xml標籤庫(x標籤庫)

(5) sql標籤庫(sql標籤庫)

3. 使用JSTL標籤步驟

(1) 導入jstl支持的jar包(標籤背後隱藏的java代碼)

注意:使用javaee5.0的項目自動導入jstl支持jar包

(2) 使用taglib指令導入標籤庫 

<%@taglib uri="核心標籤庫的tld文件的uri名稱" prefix="標籤庫的簡寫或者前綴" %>

注意:每一個核心標籤庫都有一個tld文件,tld文件在這個jar包的META-INF中,tld文件就是聲明標籤用的,在

文件中找到uri複製粘貼即可。使用這個uri就可以定位到這個標籤庫。前綴也是在這個文件中去找,在這個文件中

有一個<short-name></short-name>標籤,中間的值就是簡寫。

(3) 在jsp中使用標籤

二. 核心標籤庫的重點標籤

1. 保存數據:<c:set></c:set> 

(1) <c:set>標籤用於把某一個對象存在指定的域範圍內,或者設置Web域中的java.util.Map類型的屬性對象或

JavaBean類型的屬性對象的屬性。

(2) 標籤屬性


(3) 實例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>
    <%--使用標籤 --%>
    <%--set標籤 :保存數據(保存到域中)默認保存到page域 --%>
    <c:set var="name" value="rose" scope="request"></c:set>
    ${requestScope.name} 
  </body>
</html>

運行結果如下圖所示:


2. 獲取數據:<c:out value=""></c:out>

(1) <c:out> 標籤用於輸出一段文本到瀏覽器中。

(2) 標籤屬性


(3) 實例


3. 單條件判斷<c:if test=""></c:if>

(1) <c:if test=“”>標籤可以構造簡單的“if-then”結構的條件表達式。

(2) 標籤屬性

  

(3) 實例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>
    <%
    	String msg = null;
    	pageContext.setAttribute("msg",msg);
     %>
    <%--if標籤 :單條件判斷,test返回的是布爾值,如果返回值爲true,標籤體的內容就會輸出--%>
    <%-- 
    	<c:if test="true">
    		條件成立
    	</c:if>
    --%>
    
    <c:if test="${!empty msg}">
    	條件成立
    </c:if>
  </body>
</html>

4. 多條件判斷<c:choose></c:choose>

(1) <c:choose>標籤用於指定多個條件選擇的組合邊界,它必須與<c:when>和<c:otherwise>標籤一起使用。

使用<c:choose>,<c:when>和<c:otherwise>三個標籤,可以構造類似 “if-else if-else” 的複雜條件判斷結

構。

(2) 實例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>

    <%--choose標籤+when標籤+otherwirse標籤: 多條件判斷 --%>
    <c:set var="score" value="56"></c:set>
    
    <c:choose>
    	<c:when test="${score>=90 && score<=100}">
    		優秀
    	</c:when>
    	<c:when test="${score>=80 && score<90}">
    		良好
    	</c:when>
    	<c:when test="${score>=70 && score<80}">
    		一般
    	</c:when>
    	<c:when test="${score>=60 && score<70}">
    		及格
    	</c:when>
    	<c:otherwise>
    		不及格
    	</c:otherwise>
    </c:choose>
    
  </body>
</html>

運行結果如下圖所示:


5. 循環數據<c:forEach></c:forEach>

(1) <c:forEach>標籤用於對一個集合對象中的元素進行循環迭代操作,或者按指定的次數重複迭代執行標籤體中

的內容。 

(2) 標籤屬性


(3) 實例

<%@ page language="java" import="java.util.*,zw_entity.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>
    
    <%-- forEach標籤:循環 --%>
    <%
    	//List
     	List<Student>  list = new ArrayList<Student>();
     	list.add(new Student("rose",18));
     	list.add(new Student("jack",28));
     	list.add(new Student("lucy",38));
     	//放入域中
     	pageContext.setAttribute("list",list);
     	
     	//Map
     	Map<String,Student> map = new HashMap<String,Student>();
     	map.put("100",new Student("mark",20));
     	map.put("101",new Student("maxwell",30));
     	map.put("102",new Student("narci",40));
     	//放入域中
     	pageContext.setAttribute("map",map);
     %>
     <hr/>
     <%--
      begin="" : 從哪個元素開始遍歷,默認從0開始
      end="":     到哪個元素結束。默認到最後一個元素
      step="" : 步長    (每次加幾)  ,默認1
      items="": 需要遍歷的數據(集合) 
      var="": 每個元素的名稱 ,需要使用名稱去訪問它,相當於起別名。
      varStatus="": 當前正在遍歷元素的狀態對象。(count屬性:當前位置,從1開始)
      
     --%>
    <c:forEach items="${list}" var="student" varStatus="varSta">
    	序號:${varSta.count} - 姓名:${student.name } - 年齡:${student.age}<br/>
    </c:forEach>
    
    <hr/>
    
    <c:forEach items="${map}" var="entry">
    	${entry.key } - 姓名: ${entry.value.name } - 年齡:${entry.value.age }<br/>
    </c:forEach>
  </body>
</html>

運行結果如下圖所示:


6. 循環特殊字符串<c:forTokens items="" delims=""></c:forTokens>

(1) 對帶有相同符合格式內容進行分割輸出,例如varstr="1,2,3,4,5,6";

(2) 標籤屬性


(3) 實例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>
    
    <%-- forToken標籤: 循環特殊字符串 --%>
    <%
    	String str = "java-php-net-平面";
    	pageContext.setAttribute("str",str);
     %>
    
    <c:forTokens items="${str}" delims="-" var="s">
    	${s }<br/>
    </c:forTokens>
    
  </body>
</html>

運行結果如下圖所示:


7. 重定向<c:redirect></c:redirect>

(1) <c:redirect>標籤用於將當前的訪問請求轉發或重定向到其他資源,它可以根據url屬性所指定的地址,執行

類似<jsp:forward>這個JSP標準標籤的功能,將訪問請求轉發到其他資源;或執行response.sendRedirect()方

法的功能,將訪問請求重定向到其他資源。 

(2) 標籤屬性


(3) 實例

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%--導入標籤庫 --%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>核心標籤庫</title>  
  </head>
  
  <body>
 
    <%--redirect:重定向,重定向可以指向任何地址--%>
    <c:redirect url="http://www.baidu.com"></c:redirect>
    
  </body>
</html>




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