初識EL

一、EL函數庫介紹

  由于在JSP頁面中顯示數據時,經常需要對顯示的字符串進行處理,SUN公司針對于一些常見處理定義了一套EL函數庫供開發者使用。
  這些EL函數在JSTL開發包中進行描述,因此在JSP頁面中使用SUN公司的EL函數庫,需要導入JSTL開發包,并在頁面中導入EL函數庫,如下所示:

  MyEclipse自帶的JSTL開發包:

  

  fn.tld就是EL函數庫的對應的tld描述文件,如下圖所示:

  
  在頁面中使用JSTL定義的EL函數:<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

二、EL函數使用范例

復制代碼
  1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  2 <%@page import="me.gacl.domain.User"%>  3 <%--引入EL函數庫 --%>  4 <%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  5 <!DOCTYPE HTML>  6 <html>  7 <head>  8 <title>EL函數庫中的方法使用范例</title>  9 </head>  10  11 <body>  12 <h3>fn:toLowerCase函數使用范例:</h3>  13 <%--fn:toLowerCase函數將一個字符串中包含的所有字符轉換為小寫形式,并返回轉換后的字符串,  14  它接收一個字符串類型的參數。fn:toLowerCase("")的返回值為空字符串--%>  15 <%--fn:toLowerCase("Www.CNBLOGS.COM") 的返回值為字符串“www.cnblogs.com” --%>  16  fn:toLowerCase("Www.CNBLOGS.COM")的結果是:${fn:toLowerCase("Www.CNBLOGS.COM")}  17 <hr/>  18 <h3>fn:toUpperCase函數使用范例:</h3>  19 <%--fn:toUpperCase函數將一個字符串中包含的所有字符轉換為大寫形式,并返回轉換后的字符串,  20  它接收一個字符串類型的參數。fn:toUpperCase("")的返回值為空字符串--%>  21  fn:toUpperCase("cnblogs.com")的結果是:${fn:toUpperCase("cnblogs.com")}  22 <hr/>  23 <h3>fn:trim函數使用范例:</h3>  24 <%--fn:trim函數刪除一個字符串的首尾的空格,并返回刪除空格后的結果字符串,  25  它接收一個字符串類型的參數。需要注意的是,fn:trim函數不能刪除字符串中間位置的空格。--%>  26  fn:trim(" cnblogs.com ")的結果是:${fn:trim(" cnblogs.com ")}  27 <hr/>  28 <h3>fn:length函數使用范例:</h3>  29 <%--fn:length函數返回一個集合或數組大小,或返回一個字符串中包含的字符的個數,返回值為int類型。  30  fn:length函數接收一個參數,這個參數可以是<c:forEach>標簽的items屬性支持的任何類型,  31  包括任意類型的數組、java.util.Collection、java.util.Iterator、java.util.Enumeration、  32  java.util.Map等類的實例對象和字符串。  33  如果fn:length函數的參數為null或者是元素個數為0的集合或數組對象,則函數返回0;如果參數是空字符串,則函數返回0  34 --%>  35 <%  36  List<String> list = Arrays.asList("1","2","3"); 37 request.setAttribute("list",list); 38 %> 39 fn:length(list)計算集合list的size的值是:${fn:length(list)} 40 <br/> 41 fn:length("cnblogs.com")計算字符串的長度是:${fn:length("cnblogs.com")} 42 <hr/> 43 <h3>fn:split函數使用范例:</h3> 44 <%-- 45 fn:split函數以指定字符串作為分隔符,將一個字符串分割成字符串數組并返回這個字符串數組。 46 fn:split函數接收兩個字符串類型的參數,第一個參數表示要分割的字符串,第二個參數表示作為分隔符的字符串 47 --%> 48 fn:split("cnblogs.com",".")[0]的結果是:${fn:split("cnblogs.com",".")[0]} 49 <hr/> 50 <h3>fn:join函數使用范例:</h3> 51 <%-- 52 fn:join函數以一個字符串作為分隔符,將一個字符串數組中的所有元素合并為一個字符串并返回合并后的結果字符串。 53 fn:join函數接收兩個參數,第一個參數是要操作的字符串數組,第二個參數是作為分隔符的字符串。 54 如果fn:join函數的第二個參數是空字符串,則fn:join函數的返回值直接將元素連接起來。 55 --%> 56 <% 57 String[] StringArray = {"www","iteye","com"}; 58 pageContext.setAttribute("StringArray", StringArray); 59 %> 60 <%--fn:join(StringArray,".")返回字符串“www.iteye.com”--%> 61 fn:join(StringArray,".")的結果是:${fn:join(StringArray,".")} 62 <br/> 63 <%--fn:join(fn:split("www,iteye,com",","),".")的返回值為字符串“www.iteye.com”--%> 64 fn:join(fn:split("www,iteye,com",","),".")的結果是:${fn:join(fn:split("www,iteye,com",","),".")} 65 <hr/> 66 67 <h3>fn:indexOf函數使用范例:</h3> 68 <%-- 69 fn:indexOf函數返回指定字符串在一個字符串中第一次出現的索引值,返回值為int類型。 70 fn:indexOf函數接收兩個字符串類型的參數,如果第一個參數字符串中包含第二個參數字符串, 71 那么,不管第二個參數字符串在第一個參數字符串中出現幾次,fn:indexOf函數總是返回第一次出現的索引值; 72 如果第一個參數中不包含第二個參數,則fn:indexOf函數返回-1。如果第二個參數為空字符串,則fn:indexOf函數總是返回0。 73 --%> 74 fn:indexOf("www.iteye.com","eye")的返回值為:${fn:indexOf("www.iteye.com","eye")} 75 <hr/> 76 77 <h3>fn:contains函數使用范例:</h3> 78 <%-- 79 fn:contains函數檢測一個字符串中是否包含指定的字符串,返回值為布爾類型。 80 fn:contains函數在比較兩個字符串是否相等時是大小寫敏感的。 81 fn:contains函數接收兩個字符串類型的參數,如果第一個參數字符串中包含第二個參數字符串,則fn:contains函數返回true,否則返回false。 82 如果第二個參數的值為空字符串,則fn:contains函數總是返回true。 83 實際上,fn:contains(string, substring)等價于fn:indexOf(string, substring) != -1 84 忽略大小的EL函數:fn:containsIgnoreCase 85 --%> 86 <% 87 User user = new User(); 88 String likes[] = {"sing","dance"}; 89 user.setLikes(likes); 90 //數據回顯 91 request.setAttribute("user",user); 92 %> 93 <%--使用el函數回顯數據 --%> 94 <input type="checkbox" name="like" 95 vlaue="sing" ${fn:contains(fn:join(user.likes,","),"sing")?'checked':''}/>唱歌 96 <input type="checkbox" name="like" 97 value="dance" ${fn:contains(fn:join(user.likes,","),"dance")?'checked':''}/>跳舞 98 <input type="checkbox" name="like" 99 value="basketball" ${fn:contains(fn:join(user.likes,","),"basketball")?'checked':''}/>藍球 100 <input type="checkbox" name="like" 101 value="football" ${fn:contains(fn:join(user.likes,","),"football")?'checked':''}/>足球 102 <hr/> 103 104 <h3>fn:startsWith函數和fn:endsWith函數使用范例:</h3> 105 <%-- 106 fn:startsWith函數用于檢測一個字符串是否是以指定字符串開始的,返回值為布爾類型。 107 fn:startsWith函數接收兩個字符串類型的參數,如果第一個參數字符串以第二個參數字符串開始,則函數返回true,否則函數返回false。 108 如果第二個參數為空字符串,則fn:startsWith函數總是返回true。 109 與fn:startsWith函數對應的另一個EL函數為:fn:endsWith,用于檢測一個字符串是否是以指定字符串結束的,返回值為布爾類型。 110 --%> 111 fn:startsWith("www.iteye.com","iteye")的返回值為:${fn:startsWith("www.iteye.com","iteye")} 112 <br/> 113 fn:endsWith("www.iteye.com","com")的返回值為:${fn:endsWith("www.iteye.com","com")} 114 <hr/> 115 116 <h3>fn:replace使用范例:</h3> 117 <%-- 118 fn:replace函數將一個字符串中包含的指定子字符串替換為其它的指定字符串,并返回替換后的結果字符串。 119 fn:replace方法接收三個字符串類型的參數,第一個參數表示要操作的源字符串,第二個參數表示源字符串中要被替換的子字符串, 120 第三個參數表示要被替換成的字符串。 121 --%> 122 fn:replace("www iteye com ", " ", ".")的返回值為字符串:${fn:replace("www iteye com", " ", ".")} 123 <hr/> 124 125 <h3>fn:substring使用范例:</h3> 126 <%-- 127 fn:substring函數用于截取一個字符串的子字符串并返回截取到的子字符串。 128 fn:substring函數接收三個參數,第一個參數是用于指定要操作的源字符串,第二個參數是用于指定截取子字符串開始的索引值, 129 第三個參數是用于指定截取子字符串結束的索引值,第二個參數和第三個參數都是int類型,其值都從0開始。 130 --%> 131 fn:substring("www.it315.org", 4, 9) 的返回值為字符串:${fn:substring("www.it315.org", 4, 9)} 132 133 <h3>fn:substringAfter函數和fn:substringBefore函數使用范例:</h3> 134 <%-- 135 fn:substringAfter函數用于截取并返回一個字符串中的指定子字符串第一次出現之后的子字符串。 136 fn:substringAfter函數接收兩個字符串類型的參數,第一個參數表示要操作的源字符串,第二個參數表示指定的子字符串 137 與之對應的EL函數為:fn:substringBefore 138 --%> 139 fn:substringAfter("www.it315.org",".")的返回值為字符串:${fn:substringAfter("www.it315.org",".")} 140 <br/> 141 fn:substringBefore("www.it315.org",".")的返回值為字符串:${fn:substringBefore("www.it315.org",".")} 142 <hr/> 143 </body> 144 </html>
復制代碼

  jsp頁面中使用到的me.gacl.domain.User類的代碼如下:

復制代碼
 1 package me.gacl.domain;
 2 
 3 public class User {  4  5 /**  6  * 興趣愛好  7 */  8 private String likes[];  9 10 public String[] getLikes() { 11 return likes; 12  } 13 14 public void setLikes(String[] likes) { 15 this.likes = likes; 16  } 17 }
復制代碼

運行結果如下:

  

轉載于:https://www.cnblogs.com/cuitrek/p/4920334.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375436.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ffmpeg 合并 flv 文件

// 轉ts char cmd[1024] {\0}; sprintf(cmd, "ffmpeg -i %s -loglevel quiet -c copy -bsf:v h264_mp4toannexb -f mpegts %s", lastFlvFile.c_str(), lastTsFile.c_str()); system(cmd);// 合并ts char cmd[1024] {\0}; sprintf(cmd, "ffmpeg -i concat:\&qu…

怎么樣的理解才是完全理解SQL(二)

如果我們從集合論&#xff08;關系代數&#xff09;的角度來看&#xff0c;一張數據庫的表就是一組數據元的關系&#xff0c;而每個 SQL 語句會改變一種或數種關系&#xff0c;從而產生出新的數據元的關系&#xff08;即產生新的表&#xff09;。我們學到了什么&#xff1f;思考…

Scala學習筆記-環境搭建以及簡單語法

關于環境的搭建&#xff0c;去官網下載JDK8和Scala的IDE就可以了&#xff0c;Scala的IDE是基于Eclipse的。 下面直接上代碼&#xff1a; 這是項目目錄&#xff1a; A是scala寫的&#xff1a; package first import scala.collection.mutable.ListBufferobject A {def main(args…

UVa 12169 (枚舉+擴展歐幾里得) Disgruntled Judge

題意&#xff1a; 給出四個數T, a, b, x1,按公式生成序列 xi (a*xi-1 b) % 10001 (2 ≤ i ≤ 2T) 給出T和奇數項xi&#xff0c;輸出偶數項xi 分析&#xff1a; 最簡單的辦法就是直接枚舉a、b&#xff0c;看看與輸入是否相符。 1 #include <cstdio>2 3 const int maxn …

使用Beautifulsoup爬取藥智網數據

使用Beautifulsoup模塊爬取藥智網數據 Tips&#xff1a;1.爬取多頁時&#xff0c;先用一頁的做測試&#xff0c;要不然ip容易被封 2.自己常用的處理數據的方法&#xff1a; regre.compile(正則表達式) datareg.sub(要替換的字符串,data) 代碼&#xff08;其實沒多少&#xff09…

冪集 返回某集合的所有子集

冪集。編寫一種方法&#xff0c;返回某集合的所有子集。集合中不包含重復的元素。 說明&#xff1a;解集不能包含重復的子集。 示例: 輸入&#xff1a; nums [1,2,3]輸出&#xff1a; [[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]來源&#xff1a;力扣&#xff08;LeetCode…

iOS標準時間與時間戳相互轉換

本文轉載至 http://blog.sina.com.cn/s/blog_a843a8850101dzqd.html [cpp] view plaincopy 設置時間顯示格式: NSString* timeStr "2011-01-26 17:40:50"; NSDateFormatter *formatter [[[NSDateFormatter alloc] init] autorelease]; [formatter s…

JavaScript設計模式 Item 3 --封裝

在JavaScript 中&#xff0c;并沒有對抽象類和接口的支持。JavaScript 本身也是一門弱類型語言。在封裝類型方面&#xff0c;JavaScript 沒有能力&#xff0c;也沒有必要做得更多。對于JavaScript 的設計模式實現來說&#xff0c;不區分類型是一種失色&#xff0c;也可以說是一…

【WCF安全】WCF 自定義授權[用戶名+密碼+x509證書]

1.x509證書制作(略) 2.直接貼代碼 ----------------------------------------------------------------------服務端------------------------------------------------------------------------------------------- WCF服務 1 using System;2 using System.Collections.Generi…

openMVS-編譯

opencv4 編譯 會有問題&#xff0c;可以重新下載 opencv3 編譯并指定好路徑。 OpenCV_DIRyour opencv3 build install path cmake -DCMAKE_BUILD_TYPERelease -DVCG_ROOT"$main_path/vcglib" ..

ASP.NET Web API 數據提供系統相關類型及其關系

轉載于:https://www.cnblogs.com/frankyou/p/4932651.html

openMVG跑自定義數據出錯

使用自己拍攝的圖片跑 openMVG 的 turtor_demo.py 時&#xff0c;出現錯誤&#xff0c;沒有生成 sfm_data.bin DSC01988" model "DSC-RX100M6" doesnt exist in the database Please consider add your camera model and sensor width in the database.原因時數…

windows server 2003下安裝iis6+php

參照http://www.myhack58.com/Article/sort099/sort0100/2012/35579.htm 這篇文章&#xff0c;即可&#xff01; 前 面我寫了《windows安裝PHP5.4Apache2.4Mysql5.5》的安裝教程&#xff0c;本地實現是很簡單的&#xff0c;但是有人還是喜歡用IIS來配置 PHP環境&#xff0c;部分…

將 JAR 轉為 EXE – JSMOOTH 的使用教程(第二期)(轉載)

http://www.iteknical.com/convert-jar-to-exe-phase-ii-jsmooth-use-tutorial/轉載于:https://www.cnblogs.com/leinuo2016/p/4932790.html

“”要求左值

錯誤 C2102 “&”要求左值 wrong code typedef struct CodeData {void *ptr_;CodeData(void*ptr) : ptr_(ptr){} } CodeData;typedef struct Data {int data_;data(int data) : data_(data){} } Data;// 這里出錯&#xff0c;因為&后面是臨時變量&#xff0c;不能取地…

winform自定義文件程序-- 不允許所請求的注冊表訪問權(ZSSQL)

常見問題1&#xff1a; 不允許所請求的注冊表訪問權 win7、win8 雙擊程序文件ZSSQL時候會出現 不允許所請求的注冊表訪問權 的彈窗異常 解決方法&#xff1a;ZSSQL.exe 右鍵 屬性--兼容性--以管理員身份運行此程序 轉載于:https://www.cnblogs.com/DemoLee/p/4173324.html

UITabBarController使用總結

剛看了幾天教程就開始跟著開發了&#xff0c;以前也沒學過C&#xff0c;太痛苦了~只能看看大神的博客&#xff0c;自己再總結學習一下了。 1.首先新建一個TabBarViewController繼承于UITabBarController。然后什么都不用寫&#xff0c;相當于裝各個tab頁的容器。 2.給每個視圖都…

Auto-Configuration Error: Cannot find gcc or CC

bazel 編譯的時候出錯 首先 echo $CC 檢查&#xff0c;若輸出無值&#xff0c;則 export CCcc

Effective Modern C++英文版及中文翻譯

https://pan.baidu.com/s/1uqEBGHn3dcVON18oRK5LNQ 提取碼&#xff1a;gqqv 中文版不用看了&#xff0c;譯者估計自己都不怎么用c11\14&#xff0c;翻譯的巨垃圾。

第一個 mac 程序 Create-JSON-Model

第一個 mac 程序 Create-JSON-Model 效果圖 數據 {"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-bal…