一.长度函数 fn:length 函数
长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中,有一个功能被忽略了,那就是对集合的长度取值。虽然 java.util.Collection 接口定义了 size 方法,但是该方法不是一个标准的 JavaBean 属性方法(没有 get,set 方法),因此,无法通过 EL 表达式“ ${collection.size} ”来轻松取得。
fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input ,将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int 类型的值。下面看一个示例。
<%ArrayList arrayList1 = new ArrayList();
arrayList1.add("aa");
arrayList1.add("bb");
arrayList1.add("cc");
%>
<%request.getSession().setAttribute("arrayList1", arrayList1);%>
${fn:length(sessionScope.arrayList1)}
假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length 函数后就可以取得返回结果为“ 3 ”。
二.判断函数 fn:contains 函数
fn:contains 函数用来判断源字符串是否包含子字符串。它包括 string 和 substring 两个参数,它们都是 String 类型,分布表示源字符串和子字符串。其返回结果为一个 boolean 类型的值。下面看一个示例。
${fn:contains("ABC", "a")}<br>
${fn:contains("ABC", "A")}<br>
前者返回“ false ”,后者返回“ true ”。
三. fn:containsIgnoreCase 函数
fn:containsIgnoreCase 函数与 fn:contains 函数的功能差不多,唯一的区别是 fn:containsIgnoreCase 函数对于子字符串的包含比较将忽略大小写。它与 fn:contains 函数相同,包括 string 和 substring 两个参数,并返回一个 boolean 类型的值。下面看一个示例。
${fn:containsIgnoreCase("ABC", "a")}<br>
${fn:containsIgnoreCase("ABC", "A")}<br>
前者和后者都会返回“ true ”。
四.词头判断函数 fn:startsWith 函数
fn:startsWith 函数用来判断源字符串是否符合一连串的特定词头。它除了包含一个 string 参数外,还包含一个 subffx 参数,表示词头字符串,同样是 String 类型。该函数返回一个 boolean 类型的值。下面看一个示例。
${fn:startsWith ("ABC", "ab")}<br>
${fn:startsWith ("ABC", "AB")}<br>
前者返回“ false ”,后者返回“ true ”。
五.词尾判断函数 fn:endsWith 函数
fn:endsWith 函数用来判断源字符串是否符合一连串的特定词尾。它与 fn:startsWith 函数相同,包括 string 和 subffx 两个参数,并返回一个 boolean 类型的值。下面看一个示例。
${fn:endsWith("ABC", "bc")}<br>
${fn:endsWith("ABC", "BC")}<br>
前者返回“ false ”,后者返回“ true ”。
六.字符实体转换函数 fn:escapeXml 函数
fn:escapeXml 函数用于将所有特殊字符转化为字符实体码。它只包含一个 string 参数,返回一个 String 类型的值。
七.字符匹配函数 fn:indexOf 函数
fn:indexOf 函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“ -1 ”。它包括 string 和 substring 两个参数,返回结果为 int 类型。下面看一个示例。
${fn:indexOf("ABCD","aBC")}<br>
${fn:indexOf("ABCD","BC")}<br>
前者由于没有匹配成功,所以返回 -1 ,后者匹配成功将返回位置的下标,为 1 。
八.分隔符函数 fn:join 函数
fn:join 函数允许为一个字符串数组中的每一个字符串加上分隔符,并连接起来。它的参数、返回结果和描述如表 1 所示:
表 1 fn:join 函数
参数 |
描述 |
array |
字符串数组。其类型必须为 String[] 类型 |
separator |
分隔符。其类型必须为 String 类型 |
返回结果 |
返回一个 String 类型的值 |
下面看一个示例。
<% String[] stringArray = {"a","b","c"}; %>
<%request.getSession().setAttribute("stringArray", stringArray);%>
${fn:join(sessionScope.stringArray,";")}<br>
定义数组并放置到 Session 中,然后通过 Session 得到该字符串数组,使用 fn:join 函数并传入分隔符“ ; ”,得到的结果为“ a;b;c ”。
九.替换函数 fn:replace 函数
fn:replace 函数允许为源字符串做替换的工作。它的参数、返回结果和描述如表2 所示:
表 2 fn:replace 函数
参数 |
描述 |
inputString |
源字符串。其类型必须为 String 类型 |
beforeSubstring |
指定被替换字符串。其类型必须为 String 类型 |
afterSubstring |
指定替换字符串。其类型必须为 String 类型 |
返回结果 |
返回一个 String 类型的值 |
下面看一个示例。
${fn:replace("ABC","A","B")}<br>
将“ ABC ”字符串替换为“ BBC ”,在“ ABC ”字符串中用“ B ”替换了“ A ”。
十.分隔符转换数组函数 fn:split 函数
fn:split 函数用于将一组由分隔符分隔的字符串转换成字符串数组。它的参数、返回结果和描述如表3 所示:
表3 fn:split 函数
参数 |
描述 |
string |
源字符串。其类型必须为 String 类型 |
delimiters |
指定分隔符。其类型必须为 String类型 |
返回结果 |
返回一个 String[] 类型的值 |
下面看一个示例。
${fn:split("A,B,C",",")}<br>
将“ A,B,C ”字符串转换为数组 {A,B,C} 。
十一.字符串截取函数 fn:substring 函数
fn:substring 函数用于截取字符串。它的参数、返回结果和描述如表4 所示:
表 4 fn:substring 函数
参数 |
描述 |
string |
源字符串。其类型必须为 String 类型 |
beginIndex |
指定起始下标(值从 0 开始)。其类型必须为 int 类型 |
endIndex |
指定结束下标(值从 0 开始)。其类型必须为 int 类型 |
返回结果 |
返回一个 String 类型的值 |
下面看一个示例。
${fn:substring("ABC","1","2")}<br>
截取结果为“ B ”。
十二.起始到定位截取字符串函数 fn:substringBefore 函数
fn:substringBefore 函数允许截取源字符从开始到某个字符串。它的参数和 fn:substringAfter 函数相同,不同的是 substring 表示的是结束字符串。下面看一个示例。
${fn:substringBefore("ABCD","BC")}<br>
截取的结果为“ A ”。
十三.小写转换函数 fn:toLowerCase 函数
fn:toLowerCase 函数允许将源字符串中的字符全部转换成小写字符。它只有一个表示源字符串的参数 string ,函数返回一个 String 类型的值。下面看一个示例。
${fn:toLowerCase("ABCD")}<br>
转换的结果为“ abcd ”。
十三.大写转换函数 fn:toUpperCase 函数
fn:toUpperCase 函数允许将源字符串中的字符全部转换成大写字符。它与 fn:toLowerCase 函数相同,也只有一个 String 参数,并返回一个 String 类型的值。下面看一个示例。
${fn:toUpperCase("abcd")}<br>
转换的结果为“ ABCD ”。
十四.空格删除函数 fn:trim 函数
fn:trim 函数将删除源字符串中结尾部分的“空格”以产生一个新的字符串。它与 fn:toLowerCase 函数相同,只有一个 String 参数,并返回一个 String 类型的值。下面看一个示例。
${fn:trim("AB C ")}D<br>
转换的结果为“ AB CD ”,注意,它将只删除词尾的空格而不是全部,因此“ B ”和“ C ”之间仍然留有一个空格。
相关推荐
本文将深入探讨JSP 2.0中的自定义标签和自定义标签函数,以及如何配置和使用它们。 **一、自定义标签** 自定义标签是JSP中的一种高级特性,它允许开发者创建类似于HTML标签的自定义组件。这种组件可以封装复杂的...
其中,EL(Expression Language)表达式是JSP 2.0引入的一种轻量级脚本语言,用于访问JavaBeans属性和执行基本操作。FN函数是JSTL提供的一个功能强大的工具,包含在`javax.servlet.jsp.jstl.fn`包下,提供了一系列...
- `<fn:split>`、`<fn:length>`、`<fn:substring>`:字符串操作函数示例。 **实例解析:** - `<c:out>`标签用于输出数据。例如,当`value`属性包含特殊字符时,可以通过`escapeXml`属性决定是否转义。如果`value`...
7-6 函数标签库(Functions tag library) 第八章 JSP 与 JavaBean 8-1 JavaBean 的简介 8-2 JSP 与 JavaBean 8-3 JavaBean 的范围 8-4 JavaBean 的移除 第九章 网页窗体的处理 9-1 HTML 窗体如何传送数据 9-2 窗体...
在"实用的JavaScript函数(jsp).rar"这个压缩包中,我们很可能会找到一系列有助于提升JavaScript编程效率和代码质量的函数示例。 JavaScript的核心在于它的函数,函数是一组相关操作的集合,可以被多次调用,从而...
EL表达式通常在JSP视图层用于动态地生成内容,提供了一个简洁的语法来读取和设置Bean的属性,以及执行基本的算术和逻辑操作。 这篇博客“EL自定义函数”主要探讨如何扩展EL,以便在EL表达式中使用我们自定义的功能...
2. **EL和JSTL的使用**:演示如何利用EL进行数据绑定,以及JSTL中的核心标签库(Core)和函数标签库(Functions)。 3. **请求处理与响应**:讲解如何处理HTTP请求,使用`request`、`response`对象进行数据获取和...
EL表达式是一种简化的表达方式,主要用于访问JavaBean属性、执行运算和调用特定的函数。它以 `${}` 符号包裹,其中包含了要计算或获取的表达式。例如,`${user.name}` 可以用来获取用户对象的名称。 #### 三、EL...
总之,`functions`标签库为JSP开发者提供了便利的字符串操作工具,使得在页面中处理字符串变得更加简单和高效。熟练掌握这些函数,可以极大地提高开发效率,减少代码量,提升代码的可读性和可维护性。
本篇文章将详细探讨JSTL的四个主要标签库:sql、xml、core、fmt以及functions,并通过代码示例来展示它们的使用方法。 1. **sql标签库**:主要用于执行SQL查询,处理数据库操作。例如,`<sql:setDataSource>`定义...
- **Functions库**:包含了一系列常用函数,如字符串处理和集合操作。URI是`http://java.sun.com/jsp/jstl/functions`,前缀通常是`fn`。 **2. JSTL的历史和发展** JSTL的初始版本1.0在2002年发布,随后的1.1版本...
- **JSTL Functions**:提供了一系列的函数,如字符串处理、日期时间转换等。 综上所述,JSP标签是构建动态网页的重要工具,它们简化了页面的编程模型,使得开发者可以更加专注于业务逻辑,而不是页面的呈现细节。...
EL表达式是简洁的语法,用于在JSP页面中读取或设置bean的属性,以及执行简单的算术和逻辑运算。 **使用JSTL的步骤:** 1. **添加依赖**: 将jstl-1.2.jar和standard-2.2.3.jar(或者它们的更新版本)添加到项目的类...
2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd 43 2.4 小结 45 第3章 对xml文档进行分析 46 3.1 dom、...
2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd 43 2.4 小结 45 第3章 对xml文档进行分析 46 3.1 dom、...
例如,下面是一个简单的`.tld`文件示例: ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
它提供了一系列预定义的标签,涵盖了常见的功能,如迭代、条件判断、数据处理、XML操作以及数据库交互等,从而避免开发者直接使用Java脚本来实现这些功能,提高了代码的可读性和可维护性。 ### JSTL的主要标记库 1...
JSP EL (Expression Language) 表达式是JSP 2.0规范引入的一种简化页面开发的技术,它提供了一种简单的方法来访问存储在JSP页面、请求、会话以及应用程序范围中的数据。EL表达式的使用极大地简化了数据的获取过程,...
2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd 43 2.4 小结 45 第3章 对xml文档进行分析 46 3.1 dom、...