- 5.7 函数
- 5.7.1 contains函数
- 5.7.2 containsIgnoreCase函数
- 5.7.3 endsWith函数
- 5.7.4 escapeXml函数
- 5.7.5 indexOf函数
- 5.7.6 join函数
- 5.7.7 length函数
- 5.7.8 replace函数
- 5.7.9 split函数
- 5.7.10 startsWith函数
- 5.7.12 substringAfter函数
- 5.7.13 substringBefore函数
- 5.7.14 toLowerCase函数
- 5.7.15 toUpperCase函数
- 5.7.16 trim函数
5.7 函数
除了定制行为外,JSTL 1.1和JSTL 1.2还定义了一套可以在EL表达式中使用的标准函数。这些函数都集中放在function标签库中。为了使用这些函数,必须在JSP的最前面使用以下taglib指令:
1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" |
调用函数时,要以下列格式使用一个EL:
1 | ${fn:functionName} |
这里的functionName是函数名。
大部分函数都用于字符串操作。例如,length函数用于字符串和集合,并返回集合或者数组中的项目数,或者返回一个字符串的字符数。
5.7.1 contains函数
contains函数用于测试一个字符串中是否包含指定的子字符串。如果字符串中包含该子字符串,则返回值为true,否则,返回false。其语法如下:
1 | contains(string, substring). |
实例
例如,下面这两个EL表达式都将返回true:
1 | <c:set var="myString" value="Hello World" /> |
运行结果:
1 | true |
完整代码
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
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的语法如下:
1 | escapeXml(string) |
例如,下面的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数组中的所有元素都合并成一个字符串,并用指定的分隔符分开,其语法如下:
1 | join(array, separator) |
如果这个数组为null,就会返回一个空字符串。
1 | ${fn:join(myArray,",")} |
将返回“my, world”。
5.7.7 length函数
length函数用于返回集合中的项目数,或者字符串中的字符数,其语法如下:
1 | length{input} |
下列的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 | <c:set var="split" value='${fn:split("my,world",",")}'/> |
结果为:
1 | <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函数将一个字符串转换成它的小写版本,其语法如下:
1 | toLowerCase(string) |
例如,下列的EL表达式将返回“stella cadente”:
1 | ${fn:toLowerCase("Stella Cadente")} |
5.7.15 toUpperCase函数
toUpperCase函数将一个字符串转换成它的大写版本,其语法如下:
1 | toUpperCase(string) |
例如,下列的EL表达式将返回“STELLA CADENTE”:
1 | ${fn:toUpperCase("Stella Cadente")} |
5.7.16 trim函数
trim函数用于删除一个字符串开头和结尾的空白,其语法如下:
1 | trim(string) |
例如,下列的EL表达式将返回“Stella Cadente”:
1 | ${fn:trim(" Stella Cadente ")} |
原文链接: 5.7 函数