当前位置: 首页 > news >正文

javaweb学习总结(三十)——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 }

运行结果如下:

  

相关文章:

  • Bandizip---解压缩工具(可替代RAR)
  • 阿里云服务器购买完整流程
  • ireport默认参数和变量的含义
  • js几种排序算法
  • 2014年spark开发者大赛火热进行中!
  • 网卡别别名设置
  • Ping过程详解
  • require和import
  • 统计二进制数中1的个数
  • Flutter-BLoC-第三讲
  • Azure证书生成问题
  • The New Stack:KubeEdge将Kubernetes的能力延伸至边缘
  • 独立博客怎样申请谷歌Adsense
  • Linux实战教学笔记31:Keepalived高可用集群应用实践
  • hdu 4430 Yukari's Birthday 枚举+二分
  • php的引用
  • 【5+】跨webview多页面 触发事件(二)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • css系列之关于字体的事
  • iOS编译提示和导航提示
  • Java读取Properties文件的六种方法
  • JAVA之继承和多态
  • mysql外键的使用
  • PHP变量
  • 创建一种深思熟虑的文化
  • 高性能JavaScript阅读简记(三)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 前端
  • 前端之React实战:创建跨平台的项目架构
  • 嵌入式文件系统
  • 深入浅出Node.js
  • 一些关于Rust在2019年的思考
  • 智能合约开发环境搭建及Hello World合约
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • #pragma multi_compile #pragma shader_feature
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (C语言)二分查找 超详细
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (第二周)效能测试
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • ..回顾17,展望18
  • .NET Core 项目指定SDK版本
  • .net连接MySQL的方法
  • @Query中countQuery的介绍
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [Golang]K-V存储引擎的学习 从零实现 (RoseDB mini版本)
  • [iHooya]2023年1月30日作业解析
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [Java] 图说 注解