初识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.mzph.cn/news/375436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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 …

【WCF安全】WCF 自定义授权[用户名+密码+x509证书]

1.x509证书制作(略) 2.直接贴代码 ----------------------------------------------------------------------服务端------------------------------------------------------------------------------------------- WCF服务 1 using System;2 using System.Collections.Generi…

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;部分…

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.给每个视图都…

第一个 mac 程序 Create-JSON-Model

第一个 mac 程序 Create-JSON-Model 效果图 数据 {"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-bal…

Android--简单开发和使用ContentProvider数据共享

今天学习的时候学到了ContentProvider数据共享这个东东&#xff0c;所以自己写了个小例子: 我们要开发ContentProvider的话&#xff0c;需要创建一个类去继承ContentProvider,里面会让你重写四个方法&#xff0c;这四个方法就是数据共享用到的方法 包括SQLite的插入、查询、删除…

ECharts数据图表系统? 5分钟上手!

目录&#xff1a; 前言简介方法一&#xff1a;模块化单文件引入(推荐)方法二&#xff1a;标签式单文件引入【前言】 最近在捣鼓各种插件各种框架&#xff0c;发现这个ECharts还是比较不错的&#xff0c;文档也挺全的&#xff0c;还是中文的&#xff0c;给大家推荐一下。 这篇文…

Solr-5.3.1安装配置

Solr-5.3.1安装配置官方网站:http://lucene.apache.org/solr/http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlhttp://lucene.apache.org/solr/quickstart.html环境:CentOS6 x64Solr-5.3.1从Solr5.0开始&#xff0c;Solr不再发布为在任何…

EF for Firebird

今天用了Firebird&#xff0c;记录下怎么用&#xff0c;不然下次给忘记了 1.官网下载包 1.DDEXProvider-3.0.1.0.msi 2.FirebirdSql.Data.FirebirdClient-4.6.2.0.msi 备注&#xff1a; 1.发现DDEXProvider 与 FirebirdSql.Data.FirebirdClient安装有先后顺序 1.如果中间出现了…

(接口)银联证书上传被修改的问题和读取证书的绝对路径问题

最近在做对接银联的支付接口。相对于支付宝、微信支付&#xff0c;银联支付接口应该是做的最完美的了。银联支付平台提供了足够详细的接口文档&#xff0c;接口demo&#xff0c;常见问题解决方案。 更人性化的是&#xff0c;个人可以免费注册一个商家账号&#xff0c;提供给你免…

MST:Bad Cowtractors(POJ 2377)

坏的牛圈建筑 题目大意&#xff1a;就是现在农夫又要牛修建牛栏了&#xff0c;但是农夫想不给钱&#xff0c;于是牛就想设计一个最大的花费的牛圈给他&#xff0c;牛圈的修理费用主要是用在连接牛圈上 这一题很简单了&#xff0c;就是找最大生成树&#xff0c;把Kruskal算法改一…

第4章 maven依赖特性

第4章 maven依赖特性 本章详细介绍maven的依赖特性和依赖范围&#xff0c;如何排除依赖。 4.1 什么是依赖传递 举个例子 在非maven项目中&#xff0c;你需要使用spring功能&#xff0c;你会想到导入spring的jar包&#xff0c;那么&#xff0c;srping又需要其他依赖jar包支持&a…

lintcode :Integer to Roman 整数转罗马数字

题目 整数转罗马数字 给定一个整数&#xff0c;将其转换成罗马数字。 返回的结果要求在1-3999的范围内。 样例 4 -> IV 12 -> XII 21 -> XXI 99 -> XCIX 更多案例&#xff0c;请戳 http://literacy.kent.edu/Minigrants/Cinci/romanchart.htm 说明 什么是 罗马数字…

VRRP协议具体解释

转帖&#xff1a;http://blog.chinaunix.net/space.php?uid11654074&doblog&id2857384 Contents Page 文件夹 入木三分学网络…

WPF笔记(1.1 WPF基础)——Hello,WPF!

WPF笔记(1.1 WPF基础)——Hello&#xff0c;WPF&#xff01; 原文:WPF笔记(1.1 WPF基础)——Hello&#xff0c;WPF&#xff01;Example 1-1. Minimal C# WPF application//MyApp.csusingSystem;usingSystem.Windows; //the root WPF namespacenamespaceMyFirstAvalonApp { cla…