一、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;如果参数是空字符串,则函数返回034       --%>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) != -184     忽略大小的EL函数:fn:containsIgnoreCase85       --%>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/wl310538259/p/5164854.html

javaweb学习总结(三十)——EL函数库相关推荐

  1. javaweb学习总结(三十九)——数据库连接池

    javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10 ...

  2. 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)——数据库连接池 一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对 ...

  3. javaweb学习总结(三十二)——JDBC学习入门

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  4. JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  5. javaweb学习总结(三十九):数据库连接池

    一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...

  6. javaweb学习总结(三十八)——事务

    一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A--B转帐,对应于如下两条sql语句   update from account set mon ...

  7. javaweb学习总结(三十四)——使用JDBC处理MySQL大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...

  8. javaweb学习总结(三十八):事务

    一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A--B转帐,对应于如下两条sql语句   update from account set mon ...

  9. javaweb学习总结(三十六)——使用JDBC进行批处理

    在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...

最新文章

  1. 一名合格的运维工程师的历练之路
  2. OpenCV Features2D和全息照相法查找已知物体
  3. 为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?
  4. 【渝粤题库】国家开放大学2021春2634推销策略与艺术题目
  5. PostgreSQL Frontend/Backend protocol (通信协议)
  6. python动态表情包下载_Python从eif中导出qq表情的gif图片
  7. mysql两表查询单个_对两个表进行单个MySQL选择查询是可能的吗?
  8. C#带参数线程的操作
  9. freebsd 安装mysql_Freebsd中mysql安装及使用笔记
  10. python - 机器学习lightgbm相关实践
  11. 63. Event button 事件属性
  12. openssl加解密原理
  13. 计算机毕业设计springboot+vue+elementUI高校学生实习管理管理系统
  14. elasticsearch之拼音搜索
  15. 什么是数字示波器的垂直分辨率
  16. 使用canvas画网格
  17. 知名APP(支付宝、微信、花瓣等)首页设计技巧及原型实例讲解
  18. 几个简单好用的APP分享给你
  19. 疯狂水晶~~~~~~青龙脚本
  20. Oracle学习的经验谈

热门文章

  1. IIS6的工作进程回收
  2. Ubuntu上安装oracle java 7
  3. HAProxy详解(二):HAProxy基础配置与应用实例
  4. 中兴智能视觉大数据公交车专用道移动智能电子警察系统功能、特点及优势详细介绍...
  5. The server time zone value is unrecognized or repr
  6. ubuntu安装过程中遇到问题小结
  7. .NET仓储模式高级用例
  8. Log4j 2使用教程转
  9. 不同组织间的邮件收发
  10. Hibernate Shards 数据的水平、垂直切割(二)- Hibernate Shards基本演示