返回介绍

9.7 函数

发布于 2025-04-22 20:10:02 字数 5055 浏览 0 评论 0 收藏

除了定制行为外,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 &lt;br/&gt; 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  ")}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。