當咱們須要使用更多的動做,讓咱們的JSP頁面「無腳本化」更好,咱們該嘗試一下JSTL(JSP標準標籤庫)。例如,咱們能夠用下面代碼遍歷一個對象集合:java
<c:forEach var="item" items="{items}"> ${item} </c:forEach>
使用下面代碼,進行條件判斷:jsp
<c:if test="{2 >= 3}"> <%-- do something --%> </c:if>
常見的標籤有:ide
核心庫(core-c)函數
forEachurl
ifcode
choose-when-otherwisexml
set(設置屬性值)對象
remove(移除屬性值)rem
import(把URL屬性增長到頁面)it
param(設置)
url(保證URL重寫)
catch(捕獲異常)
<%@ page errorPage="somePage"%> <%@ taglib uri="" prefix="c"%> <c:catch var="someException"> <%-- code --%> </c:catch> <c:if test="{someExcpetion != null}"> ${someException.message} </c:if>
當咱們須要獲取更多的功能是,咱們能夠自定義咱們的標籤庫,具體步驟以下:
編寫能夠處理業務的Java類
class SomeClass extends SimpleTagSupport{ @Override public void doTag throws JspException, IOException(){ // 方法體 } }
編寫標記庫描述
<uri></uri> <function> <name></name> <function-class></function> <function-signature></function-signature> </function>
使用taglib指令
<%@ taglib prefix="" uri=""%>
使用EL調用函數