首先須要說明的是: 此博客參考孤傲蒼狼這位技術大牛對JSTL標籤的理解,寫的很是通俗易懂。原文連接:http://www.cnblogs.com/xdp-gacl/p/3943390.htmlhtml
JSTL標籤庫的使用是爲彌補html標籤的不足,規範自定義標籤的使用而誕生的。使用JSLT標籤的目的就是不但願在jsp頁面中出現java邏輯代碼。JSTL也是對EL表達式的擴展(也就是說JSTL依賴EL),是一門標籤語言。JSTL標籤使用起來很是方便,它與JSP動做標籤同樣,只不過它不是JSP內置的標籤,須要咱們本身導包,必定要指定標籤庫。java
若是你使用MyEclipse開發JavaWeb,那麼把項目發佈到Tomcat時,你會發現MyEclipse在lib目錄下自動存放了JSTL的Jar包。若是你使用其餘IDE,那麼你須要手動導入這個JSTL的Jar包:jstl-1.2.jar。web
JSTL的核心標籤庫標籤共13個,使用這些標籤可以完成JSP頁面的基本功能,減小編碼工做。sql
從功能上能夠分爲4類:表達式控制標籤、流程控制標籤、循環標籤、URL操做標籤。數據庫
在JSP頁面引入核心標籤庫的代碼爲:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
tomcat
<c:out>
標籤的功能<c:out>
標籤主要是用來輸出數據對象(字符串、表達式)的內容或結果。網絡
在使用Java腳本輸出時常使用的方式爲:<% out.println("字符串"); %>
或者<%=表達式 %>
,在web開發中,爲了不暴露邏輯代碼會盡可能減小頁面中的Java腳本,使用<c:out>
標籤就能夠實現以上功能。session
<c:out value="字符串"/>或者<c:out value="EL表達式"/>
JSTL的使用是和EL表達式分不開的,EL表達式雖然能夠直接將結果返回給頁面,但有時獲得的結果爲空,<c:out>
有特定的結果處理功能,EL的單獨使用會下降程序的易讀性,建議把EL的結果輸入放入<c:out>
標籤中。app
<c:out>
標籤的語法<c:out>
標籤的使用有兩種語法格式:webapp
<c:out value="要顯示的數據對象" [escapeXml="true|false"][default="默認值"]/>
<c:out value="要顯示的數據對象" [escapeXml="true|false"]>默認值</c:out>
這兩種方式沒有本質的區別,只是格式上的差異。[escapeXml=」true|false」][defult=」默認值」]這些使用[]屬性表示是否是必須的。
<c:out>
標籤的屬性屬性名 | 是否支持EL | 屬性類型 | 屬性描述 |
---|---|---|---|
Value | true | Object | 指定要輸出的內容 |
escapeXml | true | Boolean | 指定是否將>、<、&、’ 、」等特殊字符進行HTML編碼轉換後再進行輸出。默認值爲true。 |
default | true | Object | 指定若是value屬性的值爲null時所輸出的默認值 |
<c:out>
標籤的使用範例<%@ page language="java" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: --表達式控制標籤「out」標籤的使用</title> </head> <body> <h3><c:out value="下面的代碼演示了c:out的使用,以及在不一樣屬性值狀態下的結果。"/></h3> <hr/> <ul> <%--(1)直接輸出了一個字符串。 --%> <li>(1)<c:out value="JSTL的out標籤的使用" /></li> <li>(2)<c:out value="<a href='http://www.cnblogs.com/'>點擊連接到博客園</a>" /></li> <%--escapeXml="false"表示value值中的html標籤不進行轉義,而是直接輸出 --%> <li>(3)<c:out value="<a href='http://www.cnblogs.com/'>點擊連接到博客園</a>" escapeXml="false"/></li> <%--(4)字符串中有轉義字符,但在默認狀況下沒有轉換。 --%> <li>(4)<c:out value="<未使用字符轉義>" /></li> <%--(5)使用了轉義字符<和>分別轉換成<和>符號。 --%> <li>(5)<c:out value="<使用字符轉義>" escapeXml="false"></c:out></li> <%--(6)設定了默認值,從EL表達式${null}獲得空值,因此直接輸出設定的默認值。 --%> <li>(6)<c:out value="${null}">使用了默認值</c:out></li> <%--(7)未設定默認值,輸出結果爲空。 --%> <li>(7)<c:out value="${null}"></c:out></li> <%--(8)設定了默認值,從EL表達式${null}獲得空值,因此直接輸出設定的默認值。 --%> <li>(8)<c:out value="${null}" default="默認值"/></li> <%--(9)未設定默認值,輸出結果爲空。 --%> <li>(9)<c:out value="${null}"/></li> </ul> </body> </html>
<c:set>
標籤的功能<c:set>
標籤用於把某一個對象存在指定的域範圍內,或者將某一個對象存儲到Map或者JavaBean對象中。
<c:set>
標籤的語法<c:set>
標籤的編寫共有4種語法格式。
<c:set value=」值1」 var=」name1」 [scope=」page|request|session|application」]/>
含義:把一個變量名爲name1值爲「值1」的變量存儲在指定的scope範圍內。
<c:set var=」name2」 [scope=」page|request|session|application」]>值2</c:set>
含義:把一個變量名爲name2,值爲值2的變量存儲在指定的scope範圍內。
<c:set value=」值3」 target=」JavaBean對象」 property=」屬性名」/>
含義:把一個值爲「值3」賦值給指定的JavaBean的屬性名。至關與setter()方法。
<c:set target=」JavaBean對象」 property=」屬性名」>值4</c:set>
含義:把一個值4賦值給指定的JavaBean的屬性名。
從功能上分語法1和語法二、語法3和語法4的效果是同樣的,只是把value值放置的位置不一樣,至於使用那個根據我的的喜好,語法1和語法2是向scope範圍內存儲一個值,語法3和語法4是給指定的JavaBean賦值。
<c:set>
標籤的屬性屬性名 | 是否支持EL | 屬性類型 | 屬性描述 |
---|---|---|---|
Value | true | Object | 用於指定屬性值 |
var | false | String | 用於指定要設置的Web域屬性的名稱 |
scope | false | String | 用於指定屬性所在的Web域 |
target | true | Object | 用於指定要設置屬性的對象,這個對象必須是JavaBean對象或java.util.Map對象 |
property | true | string | 用於指定當前要爲對象設置的屬性名稱 |
<c:set>
標籤的使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%--使用JSP的指令元素指定要使用的JavaBean --%> <jsp:useBean id="person" class="javabean.Person"/> <%--負責實例化Bean,id指定實例化後的對象名,能夠經過${person}獲得person在內存中的值(或者使用person.toString()方法)。 --%> <!DOCTYPE HTML> <html> <head> <title>JSTL: --表達式控制標籤「set」標籤的使用</title> </head> <body> <h3>代碼給出了給指定scope範圍賦值的示例。</h3> <ul> <%--經過<c:set>標籤將data1的值放入page範圍中。--%> <li>把一個值放入page域中:<c:set var="data1" value="xdp" scope="page"/></li> <%--使用EL表達式從pageScope獲得data1的值。--%> <li>從page域中獲得值:${pageScope.data1}</li> <%--經過<c:set>標籤將data2的值放入request範圍中。--%> <li>把一個值放入request域中:<c:set var="data2" value="gacl" scope="request"/></li> <%--使用EL表達式從requestScope獲得data2的值。--%> <li>從request域中獲得值:${requestScope.data2}</li> <%--經過<c:set>標籤將值name1的值放入session範圍中。--%> <li>把一個值放入session域中。<c:set value="孤傲蒼狼" var="name1" scope="session"></c:set></li> <%--使用EL表達式從sessionScope獲得name1的值。--%> <li>從session域中獲得值:${sessionScope.name1} </li> <%--把name2放入application範圍中。 --%> <li>把一個值放入application域中。<c:set var="name2" scope="application">白虎神皇</c:set></li> <%--使用EL表達式從application範圍中取值,用<c:out>標籤輸出使得頁面規範化。 --%> <li>使用out標籤和EL表達式嵌套從application域中獲得值: <c:out value="${applicationScope.name2}">未獲得name的值</c:out> </li> <%--不指定範圍使用EL自動查找獲得值 --%> <li>未指定scope的範圍,會從不一樣的範圍內查找獲得相應的值:${data1}、${data2}、${name1}、${name2}</li> </ul> <hr/> <h3>使用Java腳本實現以上功能</h3> <ul> <li>把一個值放入page域中。<%pageContext.setAttribute("data1","xdp");%></li> <li>從page域中獲得值:<%out.println(pageContext.getAttribute("data1"));%></li> <li>把一個值放入request域中。<%request.setAttribute("data2","gacl");%></li> <li>從request域中獲得值:<%out.println(request.getAttribute("data2"));%></li> <li>把一個值放入session域中。<%session.setAttribute("name1","孤傲蒼狼");%></li> <li>從session中域獲得值:<%out.println(session.getAttribute("name1"));%></li> <%--out.println()方法與<%=%>表達式輸出功能同樣 但使用表達式輸出(<%=%>)明顯要比使用out.println()輸出更好。 --%> <li><%=session.getAttribute("name1") %></li> <li>把另外一個值放入application域中。<%application.setAttribute("name2","白虎神皇");%></li> <li> 從application域中獲得值:<%out.println(application.getAttribute("name2"));%></li> <li><%=application.getAttribute("name2")%></li> <li>未指定scope的範圍,會從不一樣的範圍內查找獲得相應的值: <%=pageContext.findAttribute("data1")%>、 <%=pageContext.findAttribute("data2")%>、 <%=pageContext.findAttribute("name1")%>、 <%=pageContext.findAttribute("name2")%> </li> </ul> <hr/> <h3>操做JavaBean,設置JavaBean的屬性值</h3> <%--設置JavaBean的屬性值,等同與setter方法,Target指向實例化後的對象,property指向要插入值的參數名。 注意:使用target時必定要指向實例化後的JavaBean對象,也就是要跟<jsp:useBean>配套使用, 也能夠java腳本實例化,但這就失去了是用標籤的本質意義。 使用Java腳本實例化: <%@page import="javabean.Person"% <% Person person=new Person(); %> --%> <c:set target="${person}" property="name">孤傲蒼狼</c:set> <c:set target="${person}" property="age">25</c:set> <c:set target="${person}" property="sex">男</c:set> <c:set target="${person}" property="home">中國</c:set> <ul> <li>使用的目標對象爲:${person}</li> <li>從Bean中得到的name值爲:<c:out value="${person.name}"></c:out></li> <li>從Bean中得到的age值爲:<c:out value="${person.age}"></c:out></li> <li>從Bean中得到的sex值爲:<c:out value="${person.sex}"></c:out></li> <li>從Bean中得到的home值爲:<c:out value="${person.home}"></c:out></li> </ul> <hr/> <h3>操做Map</h3> <% Map map = new HashMap(); request.setAttribute("map",map); %> <%--將data對象的值存儲到map集合中 --%> <c:set property="data" value="gacl" target="${map}"/> ${map.data} </body> </html>
jsp頁面中使用到的javabean.Person類的代碼以下:
package javabean; /** * 項目名稱:JSTLStudy * 類名稱:Person * 類描述:一個只有getter和setter方法的JavaBean或者說一個pojo(簡單的Java對象(Plain Old Java Objects))類, * 做爲一個vo(數據傳輸對象)。定義了四個變量age、name、sex和home。 */ public class Person { private String age; private String home; private String name; private String sex; public String getAge() { return age; } public String getHome() { return home; } public String getName() { return name; } public String getSex() { return sex; } public void setAge(String age) { this.age = age; } public void setHome(String home) { this.home = home; } public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } }
<c:remove>
標籤的功能<c:remove>
標籤主要用來從指定的JSP範圍內移除指定的變量。
<c:remove>
標籤的語法<c:remove var="變量名" [scope=」page|request|session|application」]/>
其中var屬性是必須的,scope能夠以省略。
<c:remove>
標籤的使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: --表達式控制標籤「remove」標籤的使用</title> </head> <body> <ul> <c:set var="name" scope="session">孤傲蒼狼</c:set> <c:set var="age" scope="session">25</c:set> <li><c:out value="${sessionScope.name}"></c:out></li> <li><c:out value="${sessionScope.age}"></c:out></li> <%--使用remove標籤移除age變量 --%> <c:remove var="age" /> <li><c:out value="${sessionScope.name}"></c:out></li> <li><c:out value="${sessionScope.age}"></c:out></li> </ul> </body> </html>
<c:catch>
標籤的功能<c:catch>
標籤用於捕獲嵌套在標籤體中的內容拋出的異常。
<c:catch>
標籤的語法其語法格式以下:<c:catch [var="varName"]>容易產生異常的代碼</c:catch>
var屬性用於標識<c:catch>
標籤捕獲的異常對象,它將保存在page這個Web域中。
<c:catch>
標籤的使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: --表達式控制標籤「catch」標籤實例</title> </head> <body> <h4>catch標籤實例</h4> <hr> <%--把容易產生異常的代碼放在<c:catch></c:catch>中,自定義一個變量errorInfo用於存儲異常信息 --%> <c:catch var="errorInfo"> <%--實現了一段異常代碼,向一個不存在的JavaBean中插入一個值--%> <c:set target="person" property="hao"></c:set> </c:catch> <%--用EL表達式獲得errorInfo的值,並使用<c:out>標籤輸出 --%> 異常:<c:out value="${errorInfo}" /><br /> 異常 errorInfo.getMessage:<c:out value="${errorInfo.message}" /><br /> 異常 errorInfo.getCause:<c:out value="${errorInfo.cause}" /><br /> 異常 errorInfo.getStackTrace:<c:out value="${errorInfo.stackTrace}" /> </body> </html>
<c:if>
標籤的功能<c:if>
標籤和程序中的if語句做用相同,用來實現條件控制。
<c:if>
標籤的語法<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>標籤體內容。</c:if>
參數說明:
<c:if>
標籤的屬性屬性名 | 是否支持EL | 屬性類型 | 屬性描述 |
---|---|---|---|
test | true | boolean | 決定是否處理標籤體中的內容的條件表達式 |
var | false | String | 用於指定將test屬性的執行結果保存到某個Web域中的某個屬性的名稱 |
scope | false | String | 指定將test屬性的執行結果保存到哪一個Web域中 |
<c:if>
標籤的使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: --流程控制標籤 if標籤示例</title> </head> <body> <h4>if標籤示例</h4> <hr> <form action="JSTL_if_tag.jsp" method="post"> <input type="text" name="uname" value="${param.uname}"> <input type="submit" value="登陸"> </form> <%--使用if標籤進行判斷並把檢驗後的結果賦給adminchock,存儲在默認的page範圍中。 --%> <c:if test="${param.uname=='admin'}" var="adminchock"> <%--能夠把adminchock的屬性範圍設置爲session,這樣就能夠在其餘的頁面中獲得adminchock的值, 使用<c:if text=」${adminchock}」><c:if>判斷,實現不一樣的權限。 --%> <c:out value="管理員歡迎您!"/> </c:if> <%--使用EL表達式獲得adminchock的值,若是輸入的用戶名爲admin將顯示true。 --%> ${adminchock} </body> </html>
<c:choose>
、<c:when>
和<c:otherwise>
標籤的功能<c:choose>
、<c:when>
和<c:otherwise>
這3個標籤一般狀況下是一塊兒使用的,<c:choose>
標籤做爲<c:when>
和<c:otherwise>
標籤的父標籤來使用。
使用<c:choose>
,<c:when>
和<c:otherwise>
三個標籤,能夠構造相似 「if-else if-else」 的複雜條件判斷結構。
<c:choose> <c:when test="條件1"> //業務邏輯1 </c:when> <c:when test="條件2"> //業務邏輯2 </c:when> <c:when test="條件n"> //業務邏輯n </c:when> <c:otherwise> //業務邏輯 </c:otherwise> </c:choose>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: -- choose及其嵌套標籤標籤示例</title> </head> <body> <h4>choose及其嵌套標籤示例</h4> <hr/> <%--經過set標籤設定score的值爲85 --%> <c:set var="score" value="85"/> <c:choose> <%--使用<c:when>進行條件判斷。 若是大於等於90,輸出「您的成績爲優秀」; 若是大於等於70小於90,輸出「您的成績爲良好」; 大於等於60小於70,輸出「您的成績爲及格」; 其餘(otherwise)輸出「對不起,您沒能經過考試」。 --%> <c:when test="${score>=90}"> 你的成績爲優秀! </c:when> <c:when test="${score>70 && score<90}"> 您的成績爲良好! </c:when> <c:when test="${score>60 && score<70}"> 您的成績爲及格 </c:when> <c:otherwise> 對不起,您沒有經過考試! </c:otherwise> </c:choose> </body> </html>
<c:forEach>
標籤的功能該標籤根據循環條件遍歷集合(Collection)中的元素。
<c:forEach>
標籤的語法<c:forEach var=」name」 items=」Collection」 varStatus=」StatusName」 begin=」begin」 end=」end」 step=」step」> 本體內容 </c:forEach>
參數說明:
<c:forEach>
標籤的屬性屬性名 | 是否支持EL | 屬性類型 | 是否必須 | 默認值 |
---|---|---|---|---|
var | false | String | yes | 無 |
items | true | Arrays Collection Iterator Enumeration Map String[]args | 無 | |
begin | true | int | no | 0 |
end | true | int | no | 集合中最後一個元素 |
step | true | int | no | 1 |
varStatus | false | String | no | 否 |
其中varStatus有4個狀態屬性,以下表所示:
屬性名 | 類型 | 說明 |
---|---|---|
index | int | 當前循環的索引值 |
count | int | 循環的次數 |
first | boolean | 是否爲第一個位置 |
last | boolean | 是否爲最後一個位置 |
<c:forEach>
的使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@page import="java.util.ArrayList"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: -- forEach標籤實例</title> </head> <body> <h4><c:out value="forEach實例"/></h4> <% List<String>list = new ArrayList<String>(); list.add(0, "貝貝"); list.add(1, "晶晶"); list.add(2, "歡歡"); list.add(3, "瑩瑩"); list.add(4, "妮妮"); request.setAttribute("list", list); %> <B><c:out value="不指定begin和end的迭代:" /></B><br> <%--不使用begin和end的迭代,從集合的第一個元素開始,遍歷到最後一個元素。 --%> <c:forEach var="fuwa" items="${list}"> <c:out value="${fuwa}"/><br/> </c:forEach> <B><c:out value="指定begin和end的迭代:" /></B><br> <%--指定begin的值爲一、end的值爲三、step的值爲2, 從第二個開始首先獲得晶晶,每兩個遍歷一次, 則下一個顯示的結果爲瑩瑩,end爲3則遍歷結束。 --%> <c:forEach var="fuwa" items="${list}" begin="1" end="3" step="2"> <c:out value="${fuwa}"/><br/> </c:forEach> <B><c:out value="輸出整個迭代的信息:" /></B><br> <%--指定varStatus的屬性名爲s,並取出存儲的狀態信息 --%> <c:forEach var="fuwa" items="${list}" begin="3" end="4" varStatus="s" step="1"> <c:out value="${fuwa}" />的四種屬性:<br> 所在位置,即索引:<c:out value="${s.index}" /><br> 總共已迭代的次數:<c:out value="${s.count}" /><br> 是否爲第一個位置:<c:out value="${s.first}" /><br> 是否爲最後一個位置:<c:out value="${s.last}" /><br> </c:forEach> </body> </html>
<c:import>
標籤的功能該標籤能夠把其餘靜態或動態文件包含到本JSP頁面,與<jsp:include>
的區別爲:<jsp:include>
只能包含同一個web應用中的文件。而<c:import>
能夠包含其餘web應用中的文件,甚至是網絡上的資源。
<c:import>
標籤的語法<c:import url=」url」 [context=」context」][value=」value」] [scope=」page|request|session|application」] [charEncoding=」encoding」]/>
<c:import url=」url」 varReader=」name」 [context=」context」] [charEncoding=」encoding」]/>
參數說明:
<c:catch></c:catch>
語句塊中捕獲。使用絕對路徑的示例以下:
<c:import url=」http://www.baidu.com」>
使用相對路徑的示例以下:<c:import url=」aa.txt」>
,aa.txt放在同一文件目錄。
<c:import url=」/bb.txt」>
<c:import url=」/index.jsp」 context=」/root」>
。等同於webapps/root/index.jsp<c:import>
標籤使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: -- import標籤實例</title> </head> <body> <h4><c:out value="import實例"/></h4> <hr/> <h4><c:out value="絕對路徑引用的實例" /></h4> <%--使用絕對路徑導入百度首頁,導入時使用<c:catch></c:catch>捕獲異常。--%> <c:catch var="error1"> <c:import url="http://wwww.baidu.com" charEncoding="utf-8"/> </c:catch> ${error1} <hr/> <h4><c:out value="相對路徑引用本應用中的文件" /></h4> <%--使用相對路徑導入同一文件夾下的「JSTL的import標籤使用說明」文件,接收的字符編碼格式使用charEncoding設置爲utf-8。 --%> <c:catch var="error2"> <c:import url="JSTL的import標籤使用說明" charEncoding="utf-8"/> </c:catch> ${error2} <hr/> <h4><c:out value="使用字符串輸出相對路徑引用的實例,並保存在session範圍內" /></h4> <%--導入「JSTL的import標籤使用說明.txt」,使用var定義的變量接收要導入的文件,並存儲在session中, 若是在其餘頁面一樣也要導入該文件,只須使用<c:out>輸出「JSTL的import標籤使用說明.txt」的值便可。--%> <c:catch var="error3"> <c:import var="myurl" url="JSTL的import標籤使用說明" scope="session" charEncoding="utf-8"/> <c:out value="${myurl}"></c:out> <hr/> <c:out value="${myurl}" /> </c:catch> ${error3} </body> </html>
<c:url>
標籤的功能標籤用於在JSP頁面中構造一個URL地址,其主要目的是實現URL重寫。
<c:url>
標籤的語法<c:url value=」value」 [var=」name」][scope=」page|request|session|application」] [context=」context」]/>
語法2:配合 <c:param>
標籤給url加上指定參數及參數值,能夠選擇以name存儲該url。
<c:url value=」value」 [var=」name」] [scope=」page|request|session|application」] [context=」context」] <c:param name=」參數名」 value=」值」> </c:url>`
<c:url>
標籤的主要屬性屬性名 | 是否支持EL | 屬性類型 | 屬性描述 |
---|---|---|---|
value | true | String | 指定要構造的URL |
var | false | String | 指定將構造出的URL結果保存到Web域中的屬性名稱 |
scope | false | String | 指定將構造出的URL結果保存到哪一個Web域中 |
<c:url>
標籤使用範例<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--引入JSTL核心標籤庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML> <html> <head> <title>JSTL: -- url標籤實例</title> </head> <body> <c:out value="url標籤使用"></c:out> <h4>使用url標籤生成一個動態的url,並把值存入session中.</h4> <hr/> <c:url value="http://www.baidu.com" var="url" scope="session"> </c:url> <a href="${url}">百度首頁(不帶參數)</a> <hr/> <h4> 配合 <c:param>標籤給url加上指定參數及參數值,生成一個動態的url而後存儲到paramUrl變量中 </h4> <c:url value="http://www.baidu.com" var="paramUrl"> <c:param name="userName" value="codingxiaxw"/> <c:param name="pwd">123456</c:param> </c:url> <a href="${paramUrl}">百度首頁(帶參數)</a> </body> </html>