多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Java之旅(三)--- JSTL和EL表達式

Java之旅(三)--- JSTL和EL表達式

來源:程序員人生   發布時間:2014-11-03 08:58:27 閱讀次數:2112次


        先給大家看1段JSP的代碼,看看有甚么感受?

<% List<UsEL> usELList = pageModel.getList(); for (ItELator<UsEL> itEL=usELList.itELator(); itEL.hasNext();) { UsEL usEL = itEL.next(); %> <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="<%=usEL.getUsELId() %>"> </td> <td class="rd8"> <%=usEL.getUsELId() %> </td> <td class="rd8"> <%=usEL.getUsELName() %> </td> <td class="rd8"> <%=usEL.getContactTel()%> </td> <td class="rd8"> <%=usEL.getEmail() %> </td> <td class="rd8"> <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(usEL.getCreateDate()) %> </td> </tr> <% } %>

       這就是攙雜著Java代碼的JSP頁面,它的不足的地方不言而喻:

       1jsp保護難度增加;
        2)出錯提示不明確,不容易調試
;
        3)分工不明確,美工人員還需要了解Java代碼;

       上述3點,終究會增加程序的開發本錢;


        解決上面的問題就出現了JSTL和EL表達式JSTL使JSP開發者可以減少對腳本元素的需求,乃至可以不需要它們,下降代碼工作量,界面更加簡潔,便于保護,后臺java人員和前真個美工人員可以分工合作,從而可提高團隊開發的效力。

       那末究竟甚么是JSTL呢?甚么是EL表達式呢?為何每次說到JSTL都要說到EL表達式呢?它們二者究竟是甚么關系呢?又有甚么區分呢?且看下面漸漸說來~


1、甚么是JSTL


       JSTL是1個不斷完善的開放源代碼的JSP標簽庫。JSTL1.0由4個定制標記庫(coreformatxml sql)和1對通用標記庫驗證器組成。

       (1)core 標記庫提供了定制操作,通過限制了作用域的變量管理數據,和履行頁面內容的迭代和條件操作。它還提供了用來生成和操作 URL的標記;

        (2)format標記庫定義了用來格式化數據(特別是數字和日期)的操作;

        (3)xml庫包括1些標記,這些標記用來操作通過XML表示的數據;

        (4) sql庫定義了用來查詢關系http://www.vxbq.cn/db/的操作。


2、甚么是EL表達式?


       EL表達式主要用于查找作用域中的數據,然后對它們履行簡單操作;它不是編程語言,乃至不是腳本編制語言。通常與 JSTL標記1起作用,能用簡單而又方便的符號來表示復雜的行動。

       EL表達式的格式:用美元符號($)定界,內容包括在花括號({})中。例如: ${PageScope.UserName}。再次對此不再贅述,網上有很多極其詳細的使用教程。


3、EL表達式變量的作用域?


       EL隱含對象:pageScoperequestScopesessionScopeapplicationScope。作用域范圍順次從小到大。


EL名稱/ JSTL名稱

有效范圍

PageScope / Page

用戶要求此頁面進程

RequestScope / Request

用戶的全部要求進程

SessionScope / Session

用戶的全部會話期

ApplicationScope / Application

WEB利用程序履行期間

       

       ${username}不寫明變量作用域時,默許按上述順序查找變量,找到就返回,不再繼續找;但是如果全部的范圍都沒找到,則返回null。如果寫明作用域,則搜索進程以下:


實例

說明

${ PageScope .UserName}

獲得Page范圍內的

UserName

${ RequestScope.UserName}

獲得Request范圍內的UserName

${SessionScope.UserName}

獲得Session范圍內的UserName

${ ApplicationScope.UserName}

獲得Application范圍內的UserName

 

4、JSTLEL表達式有何區分?


1)功能:EL是用來顯示數據的,功能跟<%=表達式%>1樣,但是它的功能有限,如:針對空給出默許的非空字符串輸出,迭代循環數組元素等是沒法實現的。而JSTL則彌補了上述問題,它經常使用來實現網頁邏輯判斷和迭代顯示,功能跟<%程序代碼%>1樣。所以,1般情況下,我們都會選擇JSTL配合EL表達式1起使用,這樣基本可以實現JSP中不出現Java代碼。


2)配置:JSTLEL表達式都是自定義標簽,web server容器會把jsp 解析成servlet,在解析的進程中調用解析器,這個解析器集合就包括ELJSTL等解析器。

但是ELservlet標準,容器中都會集成所以我們在使用EL表達式時不需要援用任何東西;而JSTL則需要引入它的包方可以使用。引入方法以下:使用taglib指令---用來唆使這個JSP頁面所使用的標簽庫<%@ taglib uri=" " prefix=" " %>


3)空值處理:當搜索全部范圍后仍沒有數據時,會返回NULL,但是EL表達式對此做出了優化,頁面上顯示空白,而不是打印輸出NULL。而JSTL則是優化的更加完全,當返回NULL時,通過JSTL可以返回“無”。

 

現在,對JSTL和EL表達式有了基本了解了,其實說白了就是1句話:二者結合,完全消除JSP頁面的Java代碼!


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线成人免费观看国产精品 | 国产一区在线播放 | 看片久久 | 亚洲免费网站观看视频 | 蜜桃精品免费久久久久影院 | 欧美性妇 | 伊人色婷婷综在合线亚洲 | 99精品视频在线成人精彩视频 | 国产免费福利体检区久久 | 欧美激情亚洲精品日韩1区2区 | 武则天免费一级淫片 | 精品久久久久久中文字幕专区 | 久久综合国产 | 99久久精品国产国产毛片 | 久久黄网| 成人性视频在线三级 | 欧美激情亚洲激情 | 成人精品一区二区激情 | 免费综合网 | 就操成人网 | 精品国产一区二区三区久久 | 亚洲精品专区一区二区欧美 | 亚洲日本一区二区三区在线不卡 | 老年人一级特黄aa大片 | 毛片网站大全 | 宇都宫紫苑ed2k| 性欧美videofree丝袜 | 日韩欧美印度一级毛片 | 国产日韩一区在线精品欧美玲 | 大看蕉a在线观看 | 一级国产 | 叼嘿免费 | 亚洲国产精久久久久久久春色 | 国产亚洲精品国产一区 | 一区二区三区四区在线免费观看 | 亚洲香蕉一区二区三区在线观看 | 欧美视频一区二区在线观看 | 日韩性大片免费 | 91国内精品久久久久怡红院 | 高清在线播放 | 手机精品视频在线观看免费 |