|
JSTL(JSP Standard Tag Library,JSP標準標簽庫)是一個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來維護的。JSTL只能運行在支持JSP1.2和Servlet2.3規(guī)范的容器上,如tomcat 4.x。在JSP 2.0中也是作為標準支持的。 JSTL(JavaServerPages Standard Tag Library)JSP標準標簽庫 JSTL標準標簽庫包括核心標簽庫和SQL標簽庫,核心標簽庫常用的是if和forEach EL即Expression Language(表達式語言) EL的語法:${ EL exprission } ${ bean.name } 或 ${ bean['name'] } 說白了,EL是用來顯示數(shù)據(jù)的,功能跟<%=表達式%> 一樣,EL是不需要引入什么東西的 我們在java開發(fā)過程中經(jīng)常會在jsp中嵌入一些java代碼,比如<%=request.getParameter('id')%>,在了解java代碼的人員看來,這很簡單,可是對于美工或者前臺不懂java代碼的人員,這就是個頭疼事兒了。那么今天我們就來解決一下這個問題。 一、EL表達式 1、EL相關(guān)概念 JSTL一般要配合EL表達式一起使用,來實現(xiàn)在jsp中不出現(xiàn)java代碼段。所以我們先來學(xué)習(xí)EL表達式 EL(Expression Language)表達式語言:用于計算和輸出存儲在標志位置(page、request、session、application)的java對象的值,然后對它們執(zhí)行簡單操作;EL是JSP2.0規(guī)范的一部分,只要容器支持Servlet2.4/JSP2.0,就可以在JSP2.0網(wǎng)頁中直接使用EL。通常與 JSTL 標記一起作用,能用簡單而又方便的符號來表示復(fù)雜的行為。 2、EL基本格式 EL表達式的格式:用美元符號($)定界,內(nèi)容包括在花括號({})中; 例如: 點號記法:${BeanName.beanProperty}數(shù)組記法:${BeanName[“beanProperty”]} 此外,您可以將多個表達式與靜態(tài)文本組合在一起以通過字符串并置來構(gòu)造動態(tài)屬性值; 例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}1 3、EL語法組成-標識符 (1)EL隱藏對象 常用 PS:使用EL的時候,默認會以一定順序(pageContext、request、session、application)搜索四個作用域,將最先找到的變量值顯示出來。 ?。?)EL存取器 存取器用來檢索對象的特性或集合的元素。存取器: 通過 “[]” 或 “.” 符號獲取相關(guān)數(shù)據(jù) 例://獲取輸出bean中的suser屬性值;${userBean.suser} 或 ${userBean[“suser”]}//獲取map中key為id對應(yīng)的值;${mcType[“id”]} ?。?)EL運算符 4、開啟和關(guān)閉EL表達式 (1)開啟方法 在servlet2.4之后默認方法為false,即可以不寫或?qū)懗?div> <%@ page isELIgnored='false' %>1 (2)關(guān)閉方法 <%@ page isELIgnored='true' %>1 還有一種批量禁用EL的方法,可以在WEB-INF/web.xml中使用jsp-property-group標簽批量禁用el,web.xml中進行如下配置。 *.jsp true 二、JSTL標簽庫 1、相關(guān)概念 JSTL(JSP Standard Tag Library,JSP標準標簽庫)是一個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來維護的。JSTL1.0 由四個定制標記庫(core、format、xml 和 sql)和一對通用標記庫驗證器組成。 如果要使用JSTL,則必須引用jstl.jar和 standard.jar兩個包。 2、JSTL標簽庫分類 core 標記庫提供了定制操作,通過限制了作用域的變量管理數(shù)據(jù),以及執(zhí)行頁面內(nèi)容的迭代和條件操作。它還提供了用來生成和操作 URL 的標記。 format 標記庫定義了用來格式化數(shù)據(jù)(尤其是數(shù)字和日期)的操作。它還支持使用本地化資源束進行JSP頁面的國際化。 xml 庫包含一些標記,這些標記用來操作通過XML表示的數(shù)據(jù),而 sql 庫定義了用來查詢關(guān)系數(shù)據(jù)庫的操作。 兩個 JSTL 標記庫驗證器允許開發(fā)人員在其 JSP 應(yīng)用程序中強制使用編碼標準。 3、JSTL的優(yōu)點 4、為什么要用JSTL 我們JSP用于開發(fā)信息展現(xiàn)頁非常方便;也可以嵌入java代碼(scriptlet、表達式和聲明)代碼用來實現(xiàn)相關(guān)邏輯控制??聪旅娉绦?。但這樣做會帶來如下問題: jsp維護難度增加;1 出錯提示不明確,不容易調(diào)試;1 分工不明確;(即jsp開發(fā)者是美工,也是程序員);1 最終增加程序的開發(fā)成本;1 解決上面的問題可以使用定制標記庫,JSTL使JSP開發(fā)者可以減少對腳本元素的需求,甚至可以不需要它們,從而避免了相關(guān)的維護成本。使分工更明確。JSTL一般配合EL一起使用,因此先看看EL. 5、使用方法 需要引入標簽庫 <%@ taglib uri='http://java./jsp/jstl/core' prefix='c'%><%@ taglib uri='http://java./jsp/jstl/fmt' prefix='fmt'%><%@ taglib uri='http://java./jsp/jstl/xml' prefix='x'%><%@ taglib uri='http://java./jsp/jstl/sql' prefix='sql'%><%@ taglib uri='http://java./jsp/jstl/functions' prefix='fn'%> 詳細步驟見下一篇博客:java學(xué)習(xí)——Jstl標簽庫大全 總結(jié): 我們通過對jstl和el的學(xué)習(xí),可以在前臺使用簡單的標簽來代替我們需要的java代碼編寫,讓我們分工更加明確。我們這個世界就是需要把復(fù)雜的東西簡單化,劃分粒度要適當,正如我們之前所說的保證單一職責的原則。希望通過我們不斷的積累和總結(jié),我們以后的學(xué)習(xí)會越來越簡單,進步越來越快。 |
|
|
來自: liang1234_ > 《web開發(fā)》