JSTL函数标签详解

JSTL Functions 标签库中提供了一组常用的 EL 函数,主要用于处理字符串,在 JSP 中可以直接使用这些函数。在 JSP 文件中使用 Functions 标签库,要先通过 taglib 指令引入该标签库: <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

1、<fn:> Function标签库 

JSTL Functions 标签库中提供了一组常用的 EL 函数,主要用于处理字符串,在 JSP 中可以直接使用这些函数。在 JSP 文件中使用 Functions 标签库,要先通过 taglib 指令引入该标签库:

<%@ taglib uri="https://java.sun.com/jsp/jstl/functions" prefix="fn" %>

Functions 标签库概览 

函数名

功能

fn:contains

用于判断在源字符串中是否包含目标字符串

fn:containsIgnoreCase 

用于判断在源字符串中是否包含目标字符串, 并且在判断时忽略大小写

fn:startsWith 

用于判断源字符串是否以指定的目标字符串开头

fn: endsWith

用于判断源字符串是否以指定的目标字符串结尾

fn:indexOf

用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引

fn:replace 

用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串

fn:substring 

用于获取源字符串中的特定子字符串

fn:substringBefore 

用于获取源字符串中指定子字符串之前的子字符串

fn: substringAfter

用于获取源字符串中指定子字符串之后的子字符串

fn:split 

用于将源字符串拆分为一个字符串数组

fn:join 

用于将源字符串数组中的所有字符串连接为一个字符串

fn:toLowerCase

用于将源字符串中的所有字符改为小写

fn: toUpperCase

用于将源字符串中的所有字符改为大写

fn:trim

用于将源字符串中的开头和末尾的空格删除

fn:escapeXml 

用于将源字符串中的字符“ < ”、“ > ”、“ ” ”和“ & ”等转换为转义字符

fn:length

用于返回字符串中的字符的个数,或者集合和数组的元素的个数

1.1 fn:contains 函数

用于判断在源字符串中是否包含目标字符串,其语法为:

fn:contains(String source, String target) -------boolean

以上 source 参数指定源字符串, target 参数指定目标字符串,返回类型为 boolean 。

实例: 

${fn:contains("Tomcat", "cat")  } ------ true  
${fn:contains("Tomcat", "CAT")} ------ false

1.2 fn:containsIgnoreCase 函数

用于判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写,其语法为:

fn: containsIgnoreCase (String source,String target) -------boolean

以上 source 参数指定源字符串, target 参数指定目标字符串,返回类型为 boolean 。

实例:

${fn: containsIgnoreCase ("Tomcat", "CAT"  )} ------- true  
${fn: containsIgnoreCase ("Tomcat", "Mike")} ------- false

1.3 fn:startsWith 函数

用于判断源字符串是否以指定的目标字符串开头,其语法为:

fn:startsWith(String source,String target) ------- boolean

以上 source 参数指定源字符串, target 参数指定目标字符串,返回类型为 boolean 。

实例:

${fn: startsWith ("Tomcat", " Tom")} ------- true  
${fn: startsWith ("Tomcat", " cat"  )}  ------- false

 

1.4 fn:endsWith 函数

用于判断源字符串是否以指定的目标字符串结尾,其语法为:

fn: endsWith (String source,String target) ----boolean

以上 source 参数指定源字符串, target 参数指定目标字符串,返回类型为 boolean 。

实例:

${fn: endsWith ("Tomcat", "cat"  )} ------ true  
${fn: endsWith ("Tomcat", "Tom")} ------ false

   

1.5 fn:indexOf 函数

用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引,如果在源字符串中不包含目标字符串,就返回 -1 ,源字符串中的第一个字符的索引为 0 。 fn:indexOf 函数的语法为:

fn: indexOf (String source,String target) ----int

以上 source 参数指定源字符串, target 参数指定目标字符串,返回类型为 int 。

实例:

${fn: indexOf ("Tomcat", "cat” )}  ------ 3  
${fn: indexOf ("2211221", "21"   )} ------ 1  
${fn: indexOf ("Tomcat", "Mike")} ------ -1

1.6 fn:replace 函数

用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。 fn:replace 函数的语法为:

fn: replace (String source,String before,String after) ---- String

以上 source 参数指定源字符串, before 参数指定源字符串中被替换的子字符串, after 参数指定用于替换的子字符串,返回类型为 String 。

实例: 

${ fn: replace("TomcAt", "cAt", "cat")} ------ Tomcat  
${ fn: replace("2008/1/9", "/", "-")} ------ 2008-1-9

1.7 fn:substring 函数

用于获取源字符串中的特定子字符串,它的语法为:

fn:substring(String source, int beginIndex, int endIndex) ------ String

以上 source 参数指定源字符串, beginIndex 参数表示子字符串中的第一个字符在源字符串中的索引,endIndex 参数表示子字符串的最后一个字符在源字符串中的索引加 1 ,返回类型为 String ,源字符串中的第一个字符的索引为 0 。

实例:

${ fn: substring ("Tomcat", 0, 3)} ------ Tom  
${ fn: substring ("Tomcat", 3, 6)} ------ cat

1.8 fn:substringBefore 函数

用于获取源字符串中指定子字符串之前的子字符串,其语法为:

fn:substringBefore ( String source, String target) ---- String

以上 source 参数指定源字符串, target 参数指定子字符串,返回类型为 String 。如果在源字符串中不包含特定子字符串,就返回空字符串。

实例:

${ fn: substringBefore ("Tomcat", "cat")} ------ Tom  
${ fn: substringBefore ("mydata.txt", ".txt")} ------- mydata

 

1.9 fn:substringAfter 函数

用于获取源字符串中指定子字符串之后的子字符串,其语法为:

fn: substringAfter (String source,String target) ------ String

以上 source 参数指定源字符串, target 参数指定子字符串,返回类型为 String 。如果在源字符串中不包含特定子字符串,就返回空字符串。

实例:

${ fn: substringAfter (“Tomcat”,”Tom”)} ----- cat  
${ fn: substringAfter (“mydata.txt”,” mydata.”)} ------ txt

  

1.10 fn:split 函数

用于将源字符串拆分为一个字符串数组,其语法为:

fn: split (String source, String delimiter) ----String[]

以上 source 参数指定源字符串, delimiter 参数指定用于拆分源字符串的分隔符,返回类型为 String[] 。如果在源字符串中不包含 delimiter 参数指定的分隔符,或者 delimiter 参数为 null ,那么在返回的字符串数组中只有一个元素,为源字符串。

实例:

<c:set value=’${ fn: split (“www.mywebsite.org”,”.”)}’ var=”strs”/>  
<c:forEach var=”token” item=”${strs}”>  
    ${token}<br/>  
</c:forEach>

其输出结果为:

www
mywebsite
org

再例如对于以下代码:

<c:set value=’${ fn: split (“www.mywebsite.org”,”-”)}’ var=”strs”/>  
${strs[0]}

其输出结果为:

www.mywebsite.org

 

1.11 fn:join 函数

用于将源字符串数组中的所有字符串连接为一个字符串,其语法为:

 fn:join(String source[],String separator) ----String

以上 source 参数指定源字符串数组, separator 参数指定用于连接源字符串数组中的各个字符串的分隔符,返回类型为 String 。

实例:

<%  
    String strs[] = {“www”,”mywebsite”,”org”};  
%>  
<c:set value=”<%=strs%>” var=”strs”/>  
${fn:join(strs,”.”)}

其输出结果为:

www. mywebsite. org

 

1.12 fn:toLowerCase 函数

用于将源字符串中的所有字符改为小写,其语法为:

fn:toLowerCase(String source)  -----String

以上 source 参数指定源字符串,返回类型为 String 。

实例:

fn:toLowerCase(“TomCat”)

其输出结果为:

tomcat

 

1.13 fn:toUpperCase 函数

 用于将源字符串中的所有字符改为大写,其语法为:

 fn: toUpperCase (String source)  -----String

 以上 source 参数指定源字符串,返回类型为 String 。

实例:

fn: toUpperCase (“TomCat”)

其输出结果为:

TOMCAT

 

1.14 fn:trim 函数

用于将源字符串中的开头和末尾的空格删除,其语法为:

 fn:trim(String source) ----String

以上 source 参数指定源字符串,返回类型为 String 。

实例:

fn:trim(“   Tomcat   ”) ------ Tomcat

 

1.15 fn:escapeXml 函数

用于将源字符串中的字符“ < ”、“ > ”、“ ” ”和“ & ”等转换为转义字符,本书第 1 章的 1.2 节( HTML 简介)介绍了转义字符的概念。 fn:escapeXml 函数的行为与 <c:out> 标签的 escapeXml 属性为 true 时的转换行为相同, fn:escapeXml 函数的语法为:

 fn:escapeXml(String source) ----String

以上 source 参数指定源字符串,返回类型为 String 。

实例:

 ${fn:escapeXml("<b> 表示粗体字 </b>") }<br/>  
<c:out value="<b> 表示粗体字 </b>" escapeXml="true"></c:out><br/>  
${"<b> 表示粗体字 </b>"}<br/>

其输出结果为: 

&lt;b&gt; 表示粗体字 &lt;/b&gt;<br/>

&lt;b&gt; 表示粗体字 &lt;/b&gt;<br/>

<b> 表示粗体字 </b><br/>

1.16 fn:length 函数

用于返回字符串中的字符的个数,或者集合和数组的元素的个数,其语法为:

fn:length(source) ---- int

以上 source 参数可以为字符串、集合或者数组,返回类型为 int 。

实例:

<%  
    int[] array = {1, 2, 3, 4};  
    ArrayList list = new ArrayList();  
    list.add("one");  
    list.add("two");  
    list.add("three");  
%>  
<c:set value="<%=array%>" var="array"></c:set>  
<c:set value="<%=list%>" var="list"></c:set>  
数组长度: ${fn:length(array)}<br/>  
集合长度: ${fn:length(list)}<br/>  
字符串长度: ${fn:length("Tomcat")}<br/>

结果:

数组长度: 4

集合长度: 3

字符串长度: 6

学习必须与实干相结合。 —— 泰戈尔
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号