javascript
jstl java_JSTL-Java-Baby-51CTO博客
Jstl的添加
第一種方式:
在創建web項目的時候,自動添加jstl的標簽,在新建項目的JSTL Support中選中add jstl libraries to web_inf/inf folder,即可完成jstl標簽的添加。
第二種方式:
以一種正常的方式創建web項目,然后在項目中手動的添加jstl標簽項,如圖:
點擊項目名----右擊------選中MyEclipse-------Add JSTL Libraries
這樣就完成了jstl的添加。
無論哪種方式的添加都必須包含兩個jar包:jstl.jar和standard.jar。
Jstl在頁面中的導入:
第一種方式:
如果是通過以上兩種方式添加了jstl的話,那么在頁面中就要添加以下的代碼:
第二種方式:
手動添加兩個主要的jar包,就需要修改一下了:
Jstl標簽Core標簽庫介紹
Core標簽庫,又被稱為核心標簽庫,該標簽庫的工作是對于jsp頁面一般處理的封裝,在該標簽庫中的標簽一共有14個,被分為了四類,分別是:
多用途核心標簽: ? ? ?
條件控制標簽: ? ? ?
循環控制標簽: ?
url相關標簽: ? ? ?
以下是各個標簽的用途和屬性及其簡單示例。
1. 用于顯示的標簽
該標簽接收從前一個Action傳遞過來的username值,如果username的值為空,那么將默認顯示default中的值,而當escapeXml設置為true時,將自動更換特殊字符。
2. 用于賦值的標簽
標簽用于為變量或是JavaBean中的變量屬性賦值的工作,它的屬性和描述如下所示:
Value中存放著即將被使用的值
Target中式被賦值的JavaBean實例的名稱,若存在該target屬性,則一定要存在property屬性(可選)
Property中是JavaBean實例的變量屬性名稱(可選)
Var是被賦值的變量名(可選)
Scope變量的作用范圍,若沒有指定,默認為page(可選)
3. 用于刪除的標簽
標簽用于刪除存在于scope中的變量,它的屬性和描述如下:
var 是即將被刪除的存在scope范圍中的變量的名稱
scope指示即將刪除的變量存在的作用域范圍
4. 用于捕獲異常的標簽
標簽允許在jsp頁面中捕捉異常。它包含了一個var屬性,是一個描述異常的變量,該變量可選,若沒有改變量的定義,那么僅僅是捕捉異常,而不做任何的處理,若定義了var屬性,那么可以利用var所定義的異常變量進行判斷轉發到其他頁面或提示報錯信息。
${param.name == 3}
當${param.name == 3}表達式有異常時,可以從var屬性”err”得到異常的內容,通過判斷err內容是否為空來決定錯誤信息的提示。
5. 用于判斷的標簽
標簽用于簡單的條件語句
若test中的值就是zhangshan的話,就顯示中的內容,判斷的結果將存儲在scope范圍中的var變量中。默認情況下scope的值為page。
6. 用于復雜判斷的 ,,標簽
這三個標簽用于實現復雜條件判斷語句,類似”if,else if”的條件語句。
顯示張山的信息
顯示其他人的信息
標簽沒有屬性,我們可以將其看做是和的父標簽,而這一對判斷標簽就是其中的子標簽。
7. 用于循環的標簽
${user }
接收傳遞過來的一個List集合,然后依次迭代將其中的值放在var變量中
Items中存放進行循環的集合(可選)
Var做循環的對象變量名,若存在items這個屬性,則表示循環集合對象中的變量名
Begin表示開始條件
End表示結束條件
Step表示循環的步長,默認情況下為1
varStatus顯示循環狀態的變量(可選)
8. 用于分隔字符的標簽
標簽可以根據某個分隔符分隔指定的字符串,相當于java.util.StringTokenizer類。
${intValue }
Items表示進行分隔的EL表達式或是常量
Delims表示分隔符
Begin表示開始條件
End表示結束條件
Step表示循環的步長,默認情況下為1
Var表示做循環的對象變量名(可選)
varStatus顯示循環狀態的變量(可選)
將需要分隔的字符串“123.456.789”,依據分隔符“.”進行分隔,begin為0表示從第一個“.”開始分隔,end為2表示分隔到第三個“.”,并將做循環的變量名指定為intValue。由于步長為“2”,顯示的EL表達式${intValue}只能顯示為“123 789”。
9. 用于包含頁面的標簽
標簽允許包含另一個JSP頁面到本頁面來
url需要導入頁面的url
context該屬性用于在不同的Context下 導入頁面,當出現context屬性時,必須以“/”開頭,此時url屬性頁需要以“/”開頭(可選)
charEncoding表示導入頁的字符集
var可以定義導入文本的變量名(可選)
scope導入文本的變量名作用范圍(可選)
varReader接受文本的java.io.Reader類變量名(可選)
10. 用于得到URL地址的標簽
該標簽用于得到一個URL地址
超鏈接
Value頁面的URL地址
Context該屬性用于得到不同的Context下的URL地址,當出現context屬性時,必須以“/”開頭,此時也需要url屬性以“/”開頭(可選)
charEncoding設置URL的字符集(可選)
scope變量名的作用范圍(可選)
11. 用于頁面重定向的標簽
用于頁面的重定向,該標簽的作用相當于response.setRedirect方法名的工作,它包含url和context兩個屬性,屬性含義和標簽相同
出現該標簽,則將重定向到當前web Context下的index.jsp頁面,一般與等標簽一起使用。
12. 用于包含傳遞參數的
Name傳遞的參數名
Value傳遞的參數值(可選)
例子:
Jstl標簽XML processing標簽庫介紹
XML核心標簽: ? ?
XML流控制標簽: ? ? ? ?
XML轉換標簽: ?
張三
123456
足球
籃球
看書
1. 用于解析XML文件的標簽
標簽是該組標簽庫的核心,從其標簽名就可以知道,它是作為解析XML文件而存在的。
Var,scope和varDom,scopeDom不應該同時出現的,而應該被視為兩個版本來使用,兩者的變量都可以被XML processing標簽庫的其他標簽來使用。
Doc存放XML的內容
Var將解析后的XML保存在該屬性所指定的變量中,之后XML processing標簽庫中的其他標簽若取XML中的內容就可以從該變量中得到(可選)
Scope變量的作用范圍
varDom指定保存的變量在org.w3c.dom.Document接口類型(可選)
scopeDom org.w3c.dom.Document的接口類型變量作用范圍(可選)
systemId定義了一個URL,該URL將使用到XML文件中以接入其他資源文件(可選)
filter該屬性必須為org.xml.sax.XMLFilter類的一個實例,可以通過使用EL表達式傳入,將對XML文件作過濾得到自身需要的部分(可選)
該示例在借助標簽的作用下引入了userInfo.xml文件,將其內容保存在xmlUser變量中,根據xmlUser變量的值進行解析userInfo.xml。
2. 用于顯示XML內容的標簽
標簽從標簽解析后保存的變量中取得需要的XML文件內容,并顯示在頁面上。該標簽是通過XPath技術(定位XML元素的一種技術)來實現的。要使用該標簽必須將xalan-j的jar包保存在“WEB-INF/lib下”。
用戶名為:
密碼為:
讀取XML文件并解析后的變量userValue將加上“$“作為XPath表達式的開頭,select中的表達式將從xml-body根元素下的各個子元素中取得實體內容,最后將結果顯示在頁面上。
3. 用于保存XML內容的標簽
標簽允許將某個源XML中元素的實體內容或是屬性,保存到一個變量中去,它的實現也依靠XPath技術。
在這里將保存XML的name元素內容到變量“tempValue“中。
4. 用于判斷的標簽
標簽允許由XPath的Boolean()函數得到的判斷結果,來判斷是否顯示其標簽所包含的內容。標簽的屬性與標簽相同,但是var的結果只能是Boolean類型。
5. 用于復雜判斷的 ? ?標簽
這組標簽將一起使用,來提供“if elseif“語句的功能。
標簽沒有屬性,可以被認為是父標簽將作為其子標簽來使用。
標簽等價于“if“語句,它包含一個select屬性,該屬性為XPath判斷表達式。
標簽沒有屬性,它等價于“else“語句。
6. 用于對XML元素循環的標簽
為對XML文件中同一名稱元素的循環控制標簽。
${hobby }
Select是XPath表達式,結果是一個集合,將對該集合進行循環(可選)
Begin開始條件(可選)
End結束條件(可選)
Step循環的步長。默認為1(可選)
Var做循環的對象變量名,表示XPath表達式結果集合中的一個對象(可選)
varStatus顯示循環狀態的變量(可選)
該示例將使用循環讀取XML中多個同存與hobbies元素下的hobby子元素
7. 格式化XML顯示數據的標簽
標簽允許使用XSLT(轉換XML格式的語言)為頁面的顯示數據所格式化的處理。
用戶名:
密碼:
這個示例將XML文件保存的數據信心利用保存在xmlUser中,然后使用一個標簽保存一個XSLT的源到“xsltdoc“,最后通過格式化XML文件的數據顯示在頁面上。
8. 用于參數傳遞的
總結
以上是生活随笔為你收集整理的jstl java_JSTL-Java-Baby-51CTO博客的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java自定义返回码_java – 自定
- 下一篇: java key值_java-必须为此操