本文目錄一覽:
jstl標籤里c:if的使用
1、 c:if 的使用
c:if 相當於if..else..語句,但c:if裡面並沒有類似於else的寫法,只能寫成多個c:if。
select id=”machinename” name=”machinename” style=”width: 226px” class=”required”
e:forEach items=”${projectsList}” varStatus=”status” var=”item”
c:if test=”${machine.machinename==item}”
option value=”${item}” selected=”selected”${item}/option
/c:if
c:if test=”${machine.machinename!=item}”
option value=”${item}”${item}/option
/c:if
/e:forEach
/select
2、 c:if test=”value ne, eq, lt, gt,….” 用法。
算術運算符 :+ 、 – 、 * 、 / (或 div )和 % (或 mod )
關係運算符 :== (或 eq )、 != (或 ne )、 (或 lt )、 (或 gt )、 = (或 le )和 = (或 ge )
邏輯運算符 : (或 and )、 || (或 or )和 ! (或 not )
驗證運算符 :empty
3、 備註:
1’ c:if test=”${machine.machinename==item}”
不能寫成 c:if test=”${machine.machinename==item} “,最後不要有空格。
擴展資料
JSTL是apache對EL表達式的擴展(也就是說JSTL依賴EL),JSTL是標籤語言!JSTL標籤使用以來非常方便。
它與JSP動作標籤一樣,只不過它不是JSP內置的標籤,需要自己導包,以及指定標籤庫而已。
如果使用MyEclipse開發JavaWeb,那麼在把項目發布到Tomcat時,會發現,MyEclipse會在lib目錄下存放jstl的Jar包!如果沒有使用MyEclipse開發那麼需要自己來導入這個JSTL的Jar包:jstl-1.2.jar。
2、JSTL標籤庫:
JSTL一共包含四大標籤庫:
core:核心標籤庫,我們學習的重點;
fmt:格式化標籤庫,只需要學習兩個標籤即可;
sql:數據庫標籤庫。
xml:xml標籤庫。
JStl如何顯示異步請求的Json數據
query的ajax異步請求接收返回json數據方法設置簡單,一個是服務器處理程序是返回json數據,另一種就是ajax發送設置的datatype設置為jsonp格式數據或json格式都可以。
代碼示例如下:
複製代碼 代碼如下:
$(‘#send’).click(function () {
$.ajax({
type : “GET”,
url : “a.php”,
dataType : “jsonp”,
success : function (data) {
$.each(data.items, function (i, item) {
$(“img class=’para’/ “).attr(“src”, item.media.m).appendTo(“#resText”);
if (i == 3) {
return false;
}
});
}
});
});
$.ajax方法如下:
複製代碼 代碼如下:
$.ajax({
type: “POST”,
url: ctxRoot+’FolderAction!saveInformSetting.action’,
data: ‘jsonStr=’ + inform_settingListStr,
dataType: “json”,
complete: function(data){
//在這裡做些事情,假設返回的json數據里有name這個屬性
//有時候可以直接data.name或者data[‘name’]去訪問
//但有時候,卻要通過var jsonData = eval(“(“+data.responseText+”)”);才可以通過jsonData.name訪問,而且這種情況下,需要是complete而不是success
JSTL里,再在中間加上div尖括號中id=什麼,怎麼理解
這個是 div 的一個屬性呀,一般Id是唯一的,不能重複使用,可以提供給js 去調用,比如實現該層顯示或隱藏:js: document.getElementbyId(“book_box”).style.display=””
jsp中的JSTL與EL表達式用法及區別
JSTL (JSP Standard Tag Library ,JSP標準標籤庫)
JSTL標籤庫分為5類:JSTL核心標籤庫、JSTL函數標籤庫、數據庫標籤庫、I18N格式化標籤庫、XML標籤庫。
JSTL的核心標籤庫主要包括:表達式操作、流程控制、迭代操作和URL操作。以下是JSTL常用標籤的用法:
一、表達式操作
1、c:out
作用:用於顯示數據的內容。
語法1:沒有本體內容
c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”] /
語法2:有本體內容
c:out value=”value” [escapeXml=”{true|false}”]
default value
/c:out
屬性說明:
value:需要顯示出來的值。
default:如果value的值為null時,則顯示default指定的值。
escapeXml:是否轉換特殊字符,默認為true。即默認會將、、’、” 和 轉換為 、、’、”和amp。如果設為false,則不進行轉換。
2、c:set
作用:用於將變量的值存儲在JSP範圍中或JavaBean的屬性中。
語法1:將value的值存儲在範圍為scope的varName變量中
c:set value=”value” var=”varName” [scope=”{page|request|session|application}”] /
語法2:將本體內容的數據存儲在範圍為scope的varName變量中
c:set var=”varName” [scope=”{page|request|session|application}”]
…本體內容
/c:set
語法3:將value的值存儲在target對象的property屬性中
c:set value=”value” target=”target” property=”propertyName” /
語法4:將本體內容的數據存儲在target對象的property屬性中
c:set target=”target” property=”propertyName”
…本體內容
/c:set
屬性說明:
value:要被存儲的值。
var:欲存入的變量名稱。
scope:var變量的JSP範圍。默認為page範圍。
target:為一JavaBean或Map對象。
如果“target”是一個Map,“property”指定的是該Map的一個鍵;如果“target”是一個bean,“property”指定的 是該bean的一個成員字段。
如果“target”表達式為null,容器會拋出一個異常。
如果“target”表達式不是一個Map或bean,容器會拋出一個異常。
如果“target”表達式是一個bean,但是這個bean沒有與“property”匹配的成員字段,容器會拋出一個異常。
property:指定的target對象的屬性。
3、c:remove
作用:移除變量。
語法:c:remove var=”varName” [scope=”{page|request|session|application}”] /
屬性說明:
var:要移除的變量。
scope:var變量所在的JSP範圍,默認為page範圍。
4、c:catch
作用:用於處理產生錯誤的異常情況,並將錯誤信息存儲起來。
語法: c:catch [var=”varName”]
…欲抓取錯誤的部分
/c:catch
屬性說明:
var:將錯誤信息存儲在指定的變量中,可以通過該變量獲取錯誤信息。
二、流程控制
1、c:if
作用:類似if判斷語句,用於表達式判斷。
語法1:沒有本體內容
c:if test=”testCondition” var=”varName” [scope=”{page|request|session|application}”] /
語法2:有本體內容
c:if test=”testCondition” [var=”varName”] [scope=”{page|request|session|application}”] /
…本體內容
/c:if
屬性說明:
test:當該屬性中的表達式運算結果為true,則會執行本體內容,為false則不執行,該標籤必須要有test屬性。
var:存儲test的運算結果,為true或false。
scope:var變量的JSP範圍。
2、c:choose、c:when、c:otherwise
作用:這三個標籤必須組合使用,用於流程控制。
範例:
c:choose
c:when test=”${condition1}”
condition1為true
/c:when
c:when test=”${ condition2}”
condition2為true
/c:when
c:otherwise
condition1和condition2都為false
/c:otherwise
/c:choose
範例說明:當condition1為true時,會顯示“condition1為true”;當condition1為false且condition2為true時,會顯示“condition2為true”,如果兩者都為false,則會顯示“condition1和condition2都為false”。
注意:若condition1和condition2的運算結果都為true時,此時只會顯示”condition1為true”。
限制說明:
a、c:when和c:otherwise標籤必須在c:choose和/c:choose之間使用。
b、在同一個c:choose中,c:otherwise必須是最後一個標籤,且只能有一個c:otherwise標籤。c:when可以有多個。
c、在同一個c:choose中,當所有c:when的test都為false時,才執行c:otherwise的本體內容。
三、迭代操作
1、c:forEach
作用:為循環控制,它可以將集合(Collection)中的成員循序瀏覽一遍。運作方式為當條件符合時,就會持續重複執行c:forEach的本體內容。
語法1:迭代一個集合對象中的所有成員
c:forEach items=”collection” [var=”varName”] [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”] /
…本體內容
/c:forEach
語法2:迭代指定次數
c:forEach [var=”varName”] [varStatus=”varStatusName”] begin=”begin” end=”end” [step=”step”]
…本體內容
/c:forEach
屬性說明:
items:被迭代的集合對象。
var:存放當前指到的集合對象中的成員。
varStatus:存放當前指到的成員的相關信息。(index:當前指到的成員的索引;count:當前總共指到成員的總數;first:當前指到的成員 是否為第一個成員;last:當前指到的成員是否為最後一個成員)。
begin:迭代開始的位置,默認為0。
end:迭代結束的位置,默認為最後。
step:每次迭代的間隔數,默認為1。
範例:
%
int atts[] = {1,2,3,4,5,6,7,8,9,10};
request.setAttribute(“atts”, atts);
%
c:forEach items=”${atts}” var=”item” begin=”0″ end=”9″ step=”1″
${item}/br
/c:forEach
此標籤也可以用於普通的循環控制,與for循環一樣。如:
c:forEach begin=”1″ end=”10″ var=”item”
${item}/br
/c:forEach
2、c:forTokens
作用:用指定分隔符分隔一字符串,并迭代分隔後的數組。
語法: c:forTokens items=”stringOfTokens” delims=”delimiters” [var=”varName”] [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]
本體內容
/c:forTokens
屬性說明:
items:被分隔并迭代的字符串。
delims:用來分隔字符串的字符。
var:存放當前指到的成員。
varStatus:存放當前指到的成員的相關信息。(index:當前指到的成員的索引;count:當前總共指到成員的總數;first:當前指到的成員 是否為第一個成員;last:當前指到的成員是否為最後一個成員)。
begin:迭代開始的位置,默認為0。
end:迭代結束的位置,默認為最後。
step:每次迭代的間隔數,默認為1。
範例1:
c:forTokens items=”A,B,C,D,E” delims=”,” var=”item”
${item}
/c:forTokens
用“,”號分隔字符串,并迭代輸出分隔後的字符串數組,輸出結果為“ABCDE”。
範例2:
c:forTokens items=”A,B;C-D,E” delims=”,;-” var=”item”
${item}
/c:forTokens
delims中指定了三個分隔符“,”、“;”和“-”,可見我們一次可以設定所有想當做分隔字符串用的字符。輸出結果依然為“ABCDE”。
四、URL操作
1、c:import
作用:將其他靜態或動態文件包含到本身JSP網頁中。不但可以包含同一個web application下的文件,還可以包含其他web application或其他網站的文件。
語法:
c:import url=”url” [var=”varName”] [scope=”{page|request|session|application}”]
[c:param name=”paramName” value=”paramValue”/]
/c:import
屬性說明:
url:要包含至本身JSP網頁的其他文件的URL。必選
var:將包含進來的其他文件以字符串的形式存放到指定的變量中。可選
scope:var變量的作用範圍。可選
c:param:可選子標籤,用於向包含進來的其他網頁文件傳遞參數。
範例:
c:import url=””
c:param name=”test” value=”1234″ /
/c:import
說明:當c:import標籤中未指定var變量時,會直接將包含進來的其他網頁文件內容顯示出來,如果指定了var變量,則會將內容存放到var變量中,不顯示。
2、c:url
作用:生成一個URL。
語法:
c:url value=”url” [context=”expression”] [var=”name”] [scope=”scope”]
[c:param name=”expression” value=”expression”/]
/c:url
範例1:
a href=”c:url value=index.jsp’/”index page/a
在a超鏈接標籤中生成一個URL,指向index.jsp。
範例2:
c:url value=”index.jsp”
c:param name=”keyword” value=”${searchTerm}”/
c:param name=”month” value=”02/2003″/
/c:url
生成一個URL,並傳遞參數,生成的結果為index.jsp?keyword=*month=02/2003,*代表傳遞的searchTerm的值。
3、c:redirect
作用:可以將客戶端的請求從一個JSP網頁導向到其他文件。
語法:
c:redirect url=”url”
[param name=”paramName” value=”paramValue”]
/c:redirect
將請求導向URl指向的其他文件。
五、I18N格式化標籤庫
使用I18N格式化標籤之前,需先插入以下指令:
%@ taglib prefix=”fmt” uri=”” %
1、fmt:formatNumber
作用:將數字格式化成數字、貨幣、百分比
語法:
fmt:formatNumber value=”value” [var=”varName”] [type=”{number|curreny|percent}”] [maxFractionDigits=”3″] [groupingUsed=”{true|false}”]/
屬性說明:
value:需要進行格式化的值
var:值的另一個變量聲明
maxFractionDigits:保留的小數點個數
2、fmt:parseNumber
作用:將字符串型的數字、貨幣、百分比格式化成數字
語法:
fmt:parseNumber value=”¥6789.36″ [var=”result”] [type=”{number|curreny|percent}”]
屬性說明:
value:需要進行格式化的值
var:值的另一個變量聲明
3、fmt:formatDate
作用:格式化時間和日期
4、fmt:parseDate
作用:將字符串形式的時間和日期轉換成日期時間類型。
5、fmt:setTimeZone
作用:在JSP 網頁中設置默認時區。
6、fmt:timeZone
作用:在JSP網頁中為該標籤體內的代碼段設置時區。
7、fmt:setLocale
作用:在JSP 網頁中設置語言地區。
8、fmt:requestEncoding
作用:在JSP 網頁中設置請求所採用的編碼方式,等價於JSP中的request. setCharacterEncoding(String encoding)。
9、fmt:setBundle
作用:設置默認的消息資源。
10、fmt:message
作用:在指定的消息資源中按關鍵字取出相應的消息內容。
11、fmt:param
作用:在從消息資源中取出消息內容時,為消息內容設置動態參數。
12、fmt:bundle
作用:為該標籤體內的代碼段設置一個消息資源。
他們的區別:
EL相關概念JSTL一般要配合EL表達式一起使用,來實現在jsp中不出現java代碼段。所以我們先來學習EL表達式EL主要用於查找作用域中的數據,然後對它們執行簡單操作;它不是編程語言,甚至不是腳本編製語言。通常與 JSTL 標記一起作用,能用簡單而又方便的符號來表示複雜的行為。EL基本格式EL表達式的格式:用美元符號($)定界,內容包括在花括號({})中;例如: ${loginInfoBean.suser}此外,您可以將多個表達式與靜態文本組合在一起以通過字符串並置來構造動態屬性值;例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}EL語法組成-標識符EL表達式由標識符、存取器、文字和運算符組成。標識符用來標識存儲在作用域中的數據對象。EL 有 11 個保留標識符,對應於 11個EL隱式對象。除了11隱式對象外,假定所有其它標識符都用來標識作用域的變量。標識符例:${abc} 相當於%=pageContext.findAttribute(“abc”)%${og_1} %=pageContext.findAttribute(“og_1”)%…等等;就是說{}內的標識符除了11個保留字之外都表示作用域中的數據對應的名.${requestScope}中的requestScope是11個EL隱式對象之一,它不再表示作用域中數據,而是表示request作用域;EL隱藏對象pageContext PageContext 實例對應於當前頁面的處理pageScope 與頁面作用域屬性的名稱和值相關聯的Map類requestScope 與請求作用域屬性的名稱和值相關聯的Map類sessionScope 與會話作用域屬性的名稱和值相關聯的Map類applicationScope 與應用程序作用域屬性的名稱和值相關聯的Map類param 按名稱存儲請求參數的主要值的 Map 類paramValues 將請求參數的所有值作為 String 數組存儲的 Map 類Header 按名稱存儲請求頭主要值的 Map 類headerValues 將請求頭的所有值作為 String 數組存儲的 Map 類cookie 按名稱存儲請求附帶的 cookie 的 Map 類initParam 按名稱存儲 Web 應用程序上下文初始化參數的Map類EL存取器存取器用來檢索對象的特性或集合的元素。存取器: 通過 “[]” 或 “.” 符號獲取相關數據例:${userBean.suser} 或 ${userBean[“suser”]}//獲取輸出bean中的suser屬性值;${mcType[“id”]} //獲取map中key為id對應的值;EL運算符運算符允許對數據和文字進行組合以及比較。EL運算符:類別 運算符算術運算符 +、-、*、/(或 div)和 %(或 mod)關係運算符 ==(或eq)、!=(或ne)、(或lt)、(或gt)、=(或le) 和 =(或ge)邏輯運算符 (或 and)、||(或or)和 !(或 not)驗證運算符 empty驗證運算符(empty):對於驗證數據特別有用。empty 運算符採用單個表達式作為其變量(也即,${empty input}),並返回一個布爾值,該布爾值表示對表達式求值的結果是不是“空”值。求值結果為 null 的表達式被認為是空,即無元素的集合或數組。如果參數是對長度為零的 String 求值所得的結果,則 empty 運算符也將返回 true。EL文字文字表示固定的值 — 數字、字符、字符串、布爾型或空值。在 EL 表達式中,數字、字符串、布爾值和 null 都可以被指定為文字值。字符串可以用單引號或雙引號定界。布爾值被指定為 true 和 falseJSTL是什麼JSTL(JSP Standard Tag Library,JSP標準標籤庫)是一個不斷完善的開放源代碼的JSP標籤庫,是由apache的jakarta小組來維護的。JSTL1.0 由四個定製標記庫(core、format、xml 和 sql)和一對通用標記庫驗證器組成。core 標記庫提供了定製操作,通過限制了作用域的變量管理數據,以及執行頁面內容的迭代和條件操作。它還提供了用來生成和操作 URL 的標記。format 標記庫定義了用來格式化數據(尤其是數字和日期)的操作。它還支持使用本地化資源束進行JSP頁面的國際化。xml 庫包含一些標記,這些標記用來操作通過XML表示的數據,而 sql 庫定義了用來查詢關係數據庫的操作。 兩個 JSTL 標記庫驗證器允許開發人員在其 JSP 應用程序中強制使用編碼標準。如果要使用JSTL,則必須引用jstl.jar和 standard.jar兩個包。為什麼要用JSTL我們JSP用於開發信息展現頁非常方便;也可以嵌入java代碼(scriptlet、表達式和聲明)代碼用來實現相關邏輯控制。看下面程序。但這樣做會帶來如下問題:jsp維護難度增加;出錯提示不明確,不容易調試;分工不明確;(即jsp開發者是美工,也是程序員);最終增加程序的開發成本;解決上面的問題可以使用定製標記庫,JSTL使JSP開發者可以減少對腳本元素的需求,甚至可以不需要它們,從而避免了相關的維護成本。使分工更明確。% if (session.getAttribute(“user”).equals(“member”)) {%pWelcome, member!/p% } else { %pWelcome, guest!/p% } %JSTL一般配合EL一起使用,因此先看看EL.JSTL部署在EE應用程序中部署JSTL有兩種方式:已存在的工程上部署將jstl.jar和standard.jar兩個包考到現有工程WebRoot / WEB-INF / lib 目錄下將相關的 .tld文件考到現有工程 WebRoot /WEB-INF 目錄下;也可通過eclipse在已存在
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200625.html