5.7 函数 除了定制行为外,JSTL 1.1和JSTL 1.2还定义了一套可以在EL表达式中使用的标准函数 。这些函数都集中放在function标签库中。为了使用这些函数,必须在JSP的最前面使用以下taglib指令:
1 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"          prefix="fn"  %> 
调用函数时,要以下列格式使用一个EL:
这里的functionName是函数名。大部分函数都用于字符串操作 。例如,length函数用于字符串和集合,并返回集合或者数组中的项目数,或者返回一个字符串的字符数。
5.7.1 contains函数 contains函数用于测试一个字符串中是否包含指定的子字符串true,否则,返回false。其语法如下:
1 contains(string, substring). 
实例 例如,下面这两个EL表达式都将返回true:
1 2 3 4 <c:set var ="myString"  value="Hello World"  /> <!-- 判断字符串有界变量`myString`中是否包含`Hello` --> ${fn:contains(myString, "Hello" )} <br> ${fn:contains("Stella Cadente" , "Cadente" )} 
运行结果:
完整代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <%@ page language="java"  contentType="text/html; charset=UTF-8"      pageEncoding="UTF-8" %> <%@taglib  uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn" %> <%@taglib  uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" > <title>function Test</title> </head> <body>     <c:set var ="myString"  value="Hello World"  />     <!-- 判断字符串有界变量`myString`中是否包含`Hello` -->     ${fn:contains(myString, "Hello" )}     <br> ${fn:contains("Stella Cadente" , "Cadente" )} </body> </html> 
5.7.2 containsIgnoreCase函数 containsIgnoreCase函数与contains函数相似,但测试是区分大小写的,其语法如下:
1 containsIgnoreCase(string, substring) 
例如,下列的EL表达式将返回true:
1 ${fn:containsIgnoreCase("Stella Cadente" , "CADENTE" )} 
5.7.3 endsWith函数 endsWith函数用于测试一个字符串是否以指定的后缀结尾Boolean,语法如下:
1 endsWith(string, suffix) 
例如,下列的EL表达式将返回true。
1 ${fn:endsWith("Hello World" , "World" )} 
5.7.4 escapeXml函数 escapeXml函数用于给String编码。这种转换与out标签将其escapeXml属性设为true一样。escapeXml的语法如下:
例如,下面的EL表达式:
1 ${fn:escapeXml("Use<br/>to change lines" )} 
将被渲染成:
1 Use <br/> to change lines 
这样浏览器就不会把<br/>当成换行符,而是显示<br/>这个字符串本身。
5.7.5 indexOf函数 indexOf函数返回指定子字符串在某个字符串中第一次出现时的索引−1**。其语法如下:
1 indexOf(string, substring) 
例如,下列的EL表达式将返回7:
1 ${fn:indexOf("Stella Cadente" , "Cadente" )} 
5.7.6 join函数 join函数将一个String数组中的所有元素都合并成一个字符串并用指定的分隔符分开 ,其语法如下:
如果这个数组为null,就会返回一个空字符串。
将返回“my, world”。
5.7.7 length函数 length函数用于返回集合中的项目数,或者字符串中的字符数,其语法如下:
下列的EL表达式将返回14:
1 ${fn:length("Stella Cadente" , "Cadente" )} 
5.7.8 replace函数 replace函数将字符串中出现的所有beforeString用afterString替换,并返回结果,其语法如下:
1 replace(string, beforeSubstring, afterSubstring) 
例如,下列的EL表达式将返回“StElla CadEntE”:
1 ${fn:replace("Stella Cadente" , "e" , "E" )} 
5.7.9 split函数 split函数用于将一个字符串分离成一个子字符串数组。它的作用与join相反my,world”,并将结果保存在有界变量split中。随后,利用forEach标签将split格式化成一个HTML表:
1 2 3 4 5 6 <c:set var ="split"  value='${fn:split("my,world",",")}' /> <table> <c:forEach var ="substring"  items="${split}" >     <tr><td>${substring}</td></tr> </c:forEach> </table> 
结果为:
1 2 3 4 <table>     <tr><td>my</td></tr>     <tr><td>world</td></tr> </table> 
5.7.10 startsWith函数 substring函数用于返回一个从指定的起始索引(含)到指定的终止索引的子字符串,其语法如下:
1 substring(string, beginIndex, endIndex) 
下列的EL表达式将返回“Stel”:
1 ${fn:substring("Stella Cadente" , 0 , 4 )} 
5.7.12 substringAfter函数 substringAfter函数用于返回指定子字符串第一次出现后的字符串部分
1 substringAfter(string, substring) 
例如,下列的EL表达式将返回“lla Cadente”:
1 ${fn:substringAfter("Stella Cadente" , "e" )} 
5.7.13 substringBefore函数 substringBefore函数用于返回指定子字符串第一次出现前的字符串部分,其语法如下:
1 substringBefore(string, substring) 
例如,下列的EL表达式将返回“St”:
1 ${fn:substringBefore("Stella Cadente" , "e" )} 
5.7.14 toLowerCase函数 toLowerCase函数将一个字符串转换成它的小写版本,其语法如下:
例如,下列的EL表达式将返回“stella cadente”:
1 ${fn:toLowerCase("Stella Cadente" )} 
5.7.15 toUpperCase函数 toUpperCase函数将一个字符串转换成它的大写版本,其语法如下:
例如,下列的EL表达式将返回“STELLA CADENTE”:
1 ${fn:toUpperCase("Stella Cadente" )} 
5.7.16 trim函数 trim函数用于删除一个字符串开头和结尾的空白,其语法如下:
例如,下列的EL表达式将返回“Stella Cadente”:
1 ${fn:trim("            Stella Cadente      " )}