JSP標準標籤庫 jstl

一、JSTL標籤庫介紹  

  JSTL標籤庫的使用是爲彌補html標籤的不足,規範自定義標籤的使用而誕生的。使用JSLT標籤的目的就是不希望在jsp頁面中出現java邏輯代碼

二、JSTL標籤庫的分類

  • 核心標籤(用得最多)
  • 國際化標籤(I18N格式化標籤)
  • 數據庫標籤(SQL標籤,很少使用)
  • XML標籤(幾乎不用)
  • JSTL函數(EL函數)

三、導入 標籤庫

jar包

在jsp頁面中:

<%@taglib prefix="前綴" uri="路徑"%>

核心標籤是最常用的 JSTL標籤。引用核心標籤庫的語法如下:

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

JSTL格式化標籤用來格式化並輸出文本、日期、時間、數字。引用格式化標籤庫的語法如下:

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

<c:out> 標籤

<c:out>標籤用來顯示一個表達式的結果,與<%= %>作用相似,它們的區別就是<c:out>標籤可以直接通過 "." 操作符來訪問屬性。舉例來說,如果想要訪問customer.address.street,只需要這樣寫:<c:out value="customer.address.street">。<c:out>標籤會自動忽略XML標記字符,所以它們不會被當做標籤來處理。(例如:<   >  &  '  ")

屬性

<c:out>標籤有如下屬性:

屬性 描述 是否必要 默認值
value 要輸出的內容
default 輸出的默認值 主體中的內容
escapeXml 是否忽略XML特殊字符 true

 語法格式

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>

 

<c:set> 標籤

<c:set>標籤用於把某一個對象存在指定的域範圍內,或者將某一個對象存儲到Map或者JavaBean對象中。

屬性

<c:set>標籤有如下屬性:

屬性 描述 是否必要 默認值
value 要存儲的值 主體的內容
target 要修改的屬性所屬的對象
property 要修改的屬性
var 存儲信息的變量
scope var屬性的作用域 Page

語法格式

<c:set
   var="<string>"
   value="<string>"
   target="<string>"
   property="<string>"
   scope="<string>"/>

<c:remove> 標籤

<c:remove>標籤用於移除一個變量,可以指定這個變量的作用域,若未指定,則默認爲變量第一次出現的作用域。這個標籤不是特別有用,不過可以用來確保JSP完成清理工作。

屬性

<c:remove>標籤有如下屬性:

屬性 描述 是否必要 默認值
var 要移除的變量名稱
scope 變量所屬的作用域 所有作用域

語法格式

<c:remove var="<string>" scope="<string>"/>

<c:if> 標籤

<c:if>標籤判斷表達式的值,如果表達式的值爲 true 則執行其主體內容。

屬性

<c:if>標籤有如下屬性:

屬性 描述 是否必要 默認值
test 條件
var 用於存儲條件結果的變量
scope var屬性的作用域 page

 

語法格式

<c:if test="<boolean>" var="<string>" scope="<string>">
   ...
</c:if>

 <c:choose> 標籤

<c:choose>標籤與Java switch語句的功能一樣,用於在衆多選項中做出選擇。

switch語句中有case,而<c:choose>標籤中對應有<c:when>,switch語句中有default,而<c:choose>標籤中有<c:otherwise>。

屬性

  • <c:choose>標籤沒有屬性。
  • <c:when>標籤只有一個屬性,在下表中有給出。
  • <c:otherwise>標籤沒有屬性。
  • <c:when>標籤的屬性如下:
屬性 描述 是否必要 默認值
test 條件

語法格式

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

 <c:url> 標籤

<c:url>標籤將URL格式化爲一個字符串,然後存儲在一個變量中。

這個標籤在需要的時候會自動重寫URL。

var屬性用於存儲格式化後的URL。

<c:url>標籤只是用於調用response.encodeURL()方法的一種可選的方法。它真正的優勢在於提供了合適的URL編碼,包括<c:param>中指定的參數。

屬性

<c:url>標籤有如下屬性:

屬性 描述 是否必要 默認值
value 基礎URL
context 本地網絡應用程序的名稱 當前應用程序
var 代表URL的變量名 Print to page
scope var屬性的作用域 Page

語法格式

<c:url
  var="<string>"
  scope="<string>"
  value="<string>"
  context="<string>"/>

例子 

 <c:url value="http://www.baidu.com" var="url" scope="session">
</c:url>


<c:url value="http://www.baidu.com" var="paramUrl">
       <c:param name="userName" value="Super曉權"/>
       <c:param name="pwd">123456</c:param>
</c:url>

<c:forEach> 標籤

屬性

<c:forEach>標籤有如下屬性:

屬性 描述 是否必要 默認值
items 要被循環的信息
begin 開始的元素(0=第一個元素,1=第二個元素) 0
end 最後一個元素(0=第一個元素,1=第二個元素) Last element
step 每一次迭代的步長 1
var 代表當前條目的變量名稱
varStatus 代表循環狀態的變量名稱

例子 

<%
   ArrayLisy<String>  list =new ArrayList<String>();
   list.add("一");
   list.add("二");
   list.add("三");   

   pageContext.setAttribute("list", list);
%>

<c:forEach items="${list }" var="ele" varStatus="vs">
     ${vs.index} ${vs.count } ${vs.first }  <br/>
</c:forEach>

運行結果

<fmt:formatNumber>標籤

<fmt:formatNumber>標籤用於格式化數字,百分比,貨幣。

例子:     

<fmt:formatNumber value="${num1}"   pattern="0.000"/>
<fmt:formatNumber value="${num1}"   pattern="#.####"/>

<fmt:formatDate> 標籤

<fmt:formatDate>標籤用於使用不同的方式格式化日期。

例子:

<c:set var="now" value="<%=new java.util.Date()%>" />
<fmt:formatDate pattern="yyyy-MM-dd"  value="${now}" />
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章