JSTL(Java server pages standarded tag library,即JSP標準標簽庫)是由JCP(Java community Proces)所制定的標準規范,它主要提供給Java Web開發人員一個標準通用的標簽庫,并由Apache的Jakarta小組來維護。開發人員可以利用這些標簽取代JSP頁面上的Java代碼,從而提高程序的可讀性,降低程序的維護難度。
JSTL的英文全稱是JavaServer Pages Standard Tag Library,中文全稱是JSP標準標識庫。JSTL技術標準是由JCP(lava Community Process)組織的JSR052專家組發布,Apache組織將其列入Jakarta項目,Sun公司將JSTL的程序包加入互聯網服務開發工具包內(Web Services Developer Pack(WSDP)),作為JSP技術應用的一個標準。
JSTL標簽是基于JSP頁面的,這些標簽可以插入在JSP代碼中,本質上JSTL也是提前定義好的一組標簽,這些標簽封裝了不同的功能,在頁面上調用標簽時,就等于調用了封裝起來的功能。JSTL的目標是簡化JSP頁面的設計。對于頁面設計人員來說,使用腳本語言操作動態數據是比較困難的,而采用標簽和表達式語言則相對容易,JSTL的使用為頁面設計人員和程序開發人員的分工協作提供了便利。
JSTL標識庫的作用是減少JSP文件的Java代碼,使Java代碼與HTML代碼分離,所以JSTL標識庫符合MVC設計理念。MVC設計理念的優勢是將動作控制、數據處理、結果顯示三者分離。
在JSP誕生之初,JSP提供了在HTML代碼中嵌入Java代碼的特性,這使得開發者可以利用Java語言的優勢來完成許多復雜的業務邏輯。但是,隨后開發者發現在HTML代碼中嵌入過多的Java代碼,程序員對于動輒上千行的JSP代碼基本喪失了維護能力,非常不利于JSP的維護和擴展?;谏鲜龅倪@個問題,開發者嘗試著使用一種新的技術來解決上面這些問題。因此,從JSP1.1規范后,JSP增加了自定義標簽庫的支持,提供了Java腳本的復用性,提高了開發者的開發效率。
JSTL是SUN公司發布的一個針對JSP開發的新組件。JSTL允許用戶使用標簽(Tags)來進行JSP頁面開發,而不是使用傳統的JSP腳本代碼方式開發。JSTL幾乎能夠做到傳統JSP腳本代碼能做的任何事情。
JSTL包含了和以下操作相關的標簽:
1、核心標簽:核心標簽庫是整個JSTL中最常用的部分,主要由以下幾部分組成:基本輸入輸出、流程控制、迭代操作和URL操作。負責Web應用的常見工作,如:循環、表達式賦值、基本輸入輸出等。
2、I18N格式標簽庫:用來格式化顯示數據的工作如:對不同區域的日期格式化等。
3、XML標簽庫:用來訪問XML文件的工作,支持JSP對XML文檔的處理。
4、數據庫標簽庫:SQL標簽庫包括了大部分訪問數據庫的邏輯操作,包括查詢、更新、事務處理、設置數據源等??梢宰鲈L問數據庫的工作。
5、函數標簽庫:用來讀取已經定義的某個函數。
結合EL表達式來使用,代替jsp頁面中的scriptlet。
• core:核心類庫 if foreach …
• fmt:格式化|國際化
• xml:已過時
• sql:已過時
• 函數庫:平時很少使用
1、導入jar包 (jstl.jar和standard.jar)
2、在頁面上導入標簽庫
<%@taglib prefix="" uri=""%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3、引用方式:c標簽所需功能
1、c:if
使用方式:滿足的時候輸出的內容
例如:
<c:if test="${5>3}">
5大于3
</c:if>
2、c:forEach
使用方式
<c:forEach begin="從那里開始" end="到那里結束" step="步
長" var="給變量起個名字" varStatus="循環狀態變量">
${i }--${vs.count }<br>
</c:forEach>
例如:
<c:forEach begin="1" end="3" items="${strList}" step="1"
var="str">
${str}
<br/>
</c:forEach>
3、c:set 和 c:choose的使用(了解)
<c:set var="count" value="4"/>
<!-- 相當于 pageContext.setAttribute("count",3) -->
<c:choose>
<c:when test="${ count ==1 }">
計數1
</c:when>
<c:when test="${ count ==2}">
計數2
</c:when>
<c:when test="${ count ==3 }">
計數3
</c:when>
<c:otherwise>
不在范圍內
</c:otherwise>
</c:choose>
重構需求
① 使用el結合jstl的方式,對學生信息列表進行重構
② 使用el對修改頁的取值進行重構
③ 從學生列表頁跳轉到學生添加頁,使用按鈕綁定事件的方式 來實現
④ 學生添加操作和學生修改操作,使用jquery的方式來提交表 單
⑤ 在學生信息列表頁擴充修改按鈕,刪除按鈕,配合列表第一列 的復選框來實現跳轉到修改頁的操作和執行刪除操作
⑥ 使用修改按鈕跳轉到修改頁
⑦ 使用刪除按鈕執行刪除操作
⑧ 使用刪除按鈕實現可批量刪除操作
⑨ 批量刪除時需要注意的問題
⑩ 在列表頁上加入全選操作,列表實現隔行變色操作