-
什么是jstl以及為什么要使用jstl
查看全部 -
常用 JSTL 函數
查看全部 -
JSTL
一、環境搭建
1.下載:http://archieve.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip
2.將zip包中的standard.jar jstl.jar 導入項目中
3.jsp頁面引入jstl核心標簽庫 ?
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
二、JSTL標簽的四大分類及JSTL函數
·核心標簽 -最常用,最重要
·格式化標簽
SQL標簽
XML標簽
·JSTL函數
變量通過EL(Expression Language)表達式獲取
·EL表達式格式 ${表達式}
? 1"."與"[]"運算符
·通常情況是通用的${user.sex} ${user["sex"]}
·"[]"還可以用來進行集合元素中的定位 ${booklist[0].price}
·2種情況不能通用
? (1)包含特殊字符 ${user.first-name} ${user["first-name"]}
? (2)通過變量動態取值:${user[param]}
·param可以是name or sex or others
·"."的寫法是${user.name} or ?${user.sex} or...
·EL變量
·EL自動類型轉換 ?
?
·EL隱式對象
·EL運算符
·表達式控制標簽詳解-out
? ? -輸出常量 ?可在value屬性中直接復制
? ? -輸出變量 ?變量不存在是可配合default屬性輸出默認值,還可以通過escapeXml控制轉義字符的輸出方式(需要變成轉移字符時escapeXml="false")
·表達式控制標簽詳解-set
? ? -存值到scope中 ? 可將值以變量形式存放到制定范圍中(2種方式)
<c:set value="today" var="day" scope="session"></c:set>
<c:set var="day" scope="application">today</c:set>
? ? -存值到JavaBean的屬性中 ? 需要配合target屬性指定對象并且通過property屬性指定要賦值給對象中的哪個屬性
<c:set target="${person}" property="name" value="zhangsan"></c:set>
·表達式控制標簽詳解-remove
? ? -remove掉某個變量 -var屬性必選 -scope屬性是可選
<c:remove var="day"/> ? ?-remove只能remove掉某個變量,不能remove某個對象中的屬性
·表達式控制標簽詳解-catch
? ? -catch標簽中可以包含那些容易出錯的JSTL標簽
<!--將錯誤信息存放到名為error的變量中-->
<c:catch var="error">
</c:catch>
·流程控制標簽詳解-if
? ? -用來實現分支條件控制
<c:if test="" var="" scope=""></c:if>
·test屬性用于存放判斷的條件,一般使用EL表達式來編寫
·var指定名稱用來存放判斷的結果類型為true或false
·scope用來存放var屬性存放的范圍
·流程控制標簽詳解-choose,when,otherwise
? ? -通常這三個標簽被放在一起配合使用
? ? - <c:choose>標簽嵌套在<c:when>和<c:otherwise>標簽的外面作為他們的父標簽來使用
? ? -其中choose和when標簽也可以一起組合使用
<c:choose>
<c:when test="判斷條件">
//業務邏輯1
</c:when>
<c:when>
//業務邏輯2
</c:when>
<c:otherwise>
//業務邏輯3
</c:otherwise>
</c:choose>
·循環控制標簽詳解-forEach
? ? -根據循環條件遍歷集合(Collection)中的元素
·var設定變量名用于存儲從集合中取出元素(必須 無默認值)
·items指定要遍歷的集合(必須 無默認值)
·begin、end用于指定遍歷的起始位置和終止位置(有默認)
·step指定循環的步長(有默認)
·varStatus通過index,count,first,last幾個狀態值,描述begin和end子集中的元素狀態
<c:forEach var="fruit" items="${fruits}" begin="1" end="4" varStatus="fru">
<c:out value="${fruit}屬性${fru.index} ${fru.count}"></c:out>
</c:forEach>
·循環控制標簽詳解-forTokens
? ? -用于瀏覽字符串,并根據定的字符將字符串截取
·items指定被迭代的字符串
·delims指定使用的分隔符
·var指定用來存放遍歷到的成員
·begin指定遍歷的開始位置(int型從取值0開始)
·end指定遍歷結束的位置(int型,默認集合中最后一個元素)
·step遍歷的步長(大于0的征整型)
·varStatus通過index,count,first,last幾個狀態值,描述begin和end子集中的元素的狀態
<c:forTokens items="024-01233455-123" delims="-" var="num">
<c:out value="${num}"></c:out>
</c:forTokens>
·URL操作標簽詳解-import
? ? -把其他靜態或動態文件包含到JSP頁面
? ? -同<jsp:include>的區別為:只能包含同一個web應用中的文件。
? ? ?而<c:import>可以包含其他web應用中的文件,甚至是網絡上的資源。
<c:import url="" context="" var="" scope="" charEncoding="" varReader="">
</c:import>
·url被導入資源的URL路徑(可以是絕對路徑也可以是相對路徑)
·context相同服務器下其他的web工程,必須以"/"開頭
context引入的內容是webapps下的其他Web project
1.修改tomcat的發布路徑
2.修改%TOMCAT_HOME%/conf/context.xml的Context標簽中的屬性 ?crossContext="true"
·var以String類型存入被包含文件的內容
·Scope var變量的JSP范圍
·charEncoding被導入文件的編碼格式
·varReader以Reader類型存儲被包含文件內容
·URL操作標簽詳解-redirect
? ? -該標簽用來實現請求的重定向,同時可以在url中加入指定的參數
·url指定重定向頁面的地址,可以是一個String類型的絕對地址或相對地址
·context用于導入其他web應用中的頁面
<!--<c:param>位參數,可選項-->
<c:redirect url="firstDEmo.jsp">
<c:param name="username">Lily</c:param>
<c:param name="password">111111</c:param>
</c:redirect>
·URL操作標簽詳解-url
? ? -該標簽用于動態生成一個String類型的URL,可以同<c:param>標簽共同使用,也可以使用html的<a>標簽實現超鏈接
·value表示url路徑值
·var 將url路徑存儲在變量中
·scope var變量的范圍
<c:if test="${0==num}">
<c:set var="partUrl">aa</c:set>
</c:if>
<c:url value="http://loacalhost:8080/${partUrl}" var="newUrl" scope="session"></c:url>
<a href="${newUrl}">新的URL</a>
?
·常用JSTL函數
? ? ·要在頁面添加 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
菜鳥教程 ?http://www.runoob.com/jsp/jsp-jstl.html
查看全部 -
set 存值到scope中 存值到javabeen屬性中查看全部
-
<jap:userbeen id = “” class=“”><>. 中實例化Java對象查看全部
-
<out標簽>查看全部
-
escape為false 進行轉譯 value =“>out 標簽lt” 輸出為_>out標簽<查看全部
-
在取值時得先向某些scope賦值查看全部
-
$(empty user)查看全部
-
存到scope的map結構中查看全部
-
El表達式是從內置元素中獲取對象的值 所以這里 隨便取了個內置對象賦值 satring user=“zhangsan” seq.setattribute(“user”,user)查看全部
-
從頁面獲取的值req.getparameter(count)是 string 需要integer.perset...()轉化為數字進行加減 el表達式不需要 只需要${param(count)+20}查看全部
-
${user}如果 page request session application 中都沒有user el表達式會輸出 空字符串查看全部
-
c:out變量由el表達式獲取查看全部
-
c:out查看全部
舉報