- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
9.7 函数
除了定制行为外,JSTL 1.1 和 JSTL 1.2 还定义了一套可以在 EL 表达式中使用的标准函数。这些函数都集中放在 function 标签库中。要使用这些函数,必须在 JSP 的最前面使用以下的 taglib 指令:
< %@ taglib uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
调用函数时,要以下列格式使用一个 EL:
${fn:functionName}
这里的 functionName 是函数名。
大部分函数都用于字符串操作。例如,length 函数用于字符串和集合,并返回集合或者数组中的项数,或者返回一个字符串的字符数。
9.7.1 contains 函数
contains 函数用于测试一个字符串中是否包含指定的子字符串。如果字符串中包含该子字符串,则返回值为 True,否则,返回 False。其语法如下:
contains(string, substring).
例如,下面这两个 EL 表达式都将返回 True:
<c:set var="myString" value="Hello World"/>
${fn:contains(myString, "Hello")}
${fn:contains("Stella Cadente", "Cadente")}
9.7.2 containsIgnoreCase 函数
containsIgnoreCase 函数与 contains 函数相似,但测试是区分大小写的,其语法如下:
containsIgnoreCase(string, substring)
例如,下列的 EL 表达式将返回 True:
${fn:containsIgnoreCase("Stella Cadente", "CADENTE")}
9.7.3 endsWith 函数
endsWith 函数用于测试一个字符串是否以指定的后缀结尾。其返回值是一个 Boolean,语法如下:
endsWith(string, suffix)
例如,下列的 EL 表达式将返回 True:
${fn:endsWith("Hello World", "World")}
9.7.4 escapeXml 函数
escapeXml 函数用于给 String 编码。这种转换与 out 标签将其 escapeXml 属性设为 True 一样。escapeXml 的语法如下:
escapeXml(string)
例如,下面的 EL 表达式:
${fn:escapeXml("Use <br/> to change lines")}
将被渲染成:
Use <br/> to change lines
9.7.5 indexOf 函数
indexOf 函数返回指定子字符串在某个字符串中第一次出现时的索引。如果没有找到指定的子字符串,则返回-1。其语法如下:
indexOf(string, substring)
例如,下面的 EL 表达式将返回 7:
${fn:indexOf("Stella Cadente", "Cadente")}
9.7.6 join 函数
join 函数将一个 String 数组中的所有元素都合并成一个字符串,并用指定的分隔符分开,其语法如下:
join(array, separator)
如果这个数组为 null,就会返回一个空字符串。
例如,如果 myArray 是一个 String 数组,它带有两个元素“my”和“world”,那么,下面的 EL 表达式:
${fn:join(myArray,",")}
将返回“my, world”。
9.7.7 length 函数
length 函数用于返回集合中的项数,或者字符串中的字符数,其语法如下:
length{input}
下面的 EL 表达式将返回 14。
${fn:length("Stella Cadente", "Cadente")}
9.7.8 replace 函数
replace 函数将字符串中出现的所有 beforeString 都用 afterString 替换,并返回结果,其语法如下:
replace(string, beforeSubstring, afterSubstring)
例如,下面的 EL 表达式:
${fn:replace("Stella Cadente", "e", "E")}
将返回“StElla CadEntE”。
9.7.9 split 函数
split 函数用于将一个字符串分割成一个子字符串数组。它的作用与 join 相反。例如,下列代码分割字符串“my, world”,并将结果保存在有界变量 split 中。随后,利用 forEach 标签将 split 格式化成一个 HTML 表。
<c:set var="split" value='${fn:split("my,world",",")}'/>
<table>
<c:forEach var="substring" items="${split}">
<tr><td>${substring}</td></tr>
</c:forEach>
</table>
结果为:
<table>
<tr><td>my</td></tr>
<tr><td>world</td></tr>
</table>
9.7.10 startsWith 函数
startsWith 函数用于测试一个字符串是否以指定的前缀开头,其语法如下:
startsWith(string, prefix)
例如,下面的 EL 表达式将返回 True:
${fn:startsWith("Stella Cadente", "St")}
9.7.11 substring 函数
substring 函数用于返回一个从指定基于 0 的起始索引(含)到指定基于 0 的终止索引的子字符串,其语法如下:
substring(string, beginIndex, endIndex)
下面的 EL 表达式将返回“Stel”。
${fn:substring("Stella Cadente", 0, 4)}
9.7.12 substringAfter 函数
substringAfter 函数用于返回指定子字符串第一次出现后的字符串部分,其语法如下:
substringAfter(string, substring)
例如,下面的 EL 表达式:
${fn:substringAfter("Stella Cadente", "e")}
将返回“lla Cadente”。
9.7.13 substringBefore 函数
substringBefore 函数用于返回指定子字符串第一次出现前的字符串部分,其语法如下:
substringBefore(string, substring)
例如,下面的 EL 表达式将返回“St”。
${fn:substringBefore("Stella Cadente", "e")}
9.7.14 toLowerCase 函数
toLowerCase 函数将一个字符串转换成它的小写版本,其语法如下:
toLowerCase(string)
例如,下面的 EL 表达式将返回“stella cadente”:
${fn:toLowerCase("Stella Cadente")}
9.7.15 toUpperCase 函数
toUpperCase 函数将一个字符串转换成它的大写版本,其语法如下:
toUpperCase(string)
例如,下面的 EL 表达式将返回“STELLA CADENTE”。
${fn:toUpperCase("Stella Cadente")}
9.7.16 trim 函数
trim 函数用于删除一个字符串开头和结尾的空白,其语法如下:
trim(string)
例如,下面的 EL 表达式将返回“Stella Cadente”。
${fn:trim(" Stella Cadente ")}
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论