日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java學(xué)習(xí)——JSTL標(biāo)簽與EL表達(dá)式之間的微妙關(guān)系

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多