`

JSTL 除C标签外的其他几个标签

    博客分类:
  • jstl
阅读更多

9.7 Functions标签库

称呼Functions标签库为标签库,倒不如称呼其为函数库来得更容易理解些。因为Functions标签库并没有提供传统的标签来为JSP页面的工作服务,而是被用于EL表达式语句中。在JSP2.0规范下出现的Functions标签库为EL表达式语句提供了许多更为有用的功能。Functions标签库分为两大类,共16个函数。

q    长度函数:fn:length

q    字符串处理函数:fn:containsfn:containsIgnoreCasefn:endsWithfn:escapeXmlfn:indexOffn:joinfn:replacefn:splitfn:startsWithfn:substringfn:substringAfterfn:substringBeforefn:toLowerCasefn:toUpperCasefn:trim

以下是各个函数的用途和属性以及简单示例。

9.7.1 长度函数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 ”

9.7.2 判断函数fn:contains函数

fn:contains函数用来判断源字符串是否包含子字符串。它包括stringsubstring两个参数,它们都是String类型,分布表示源字符串和子字符串。其返回结果为一个boolean类型的值。下面看一个示例。

${fn:contains("ABC", "a")}<br>

${fn:contains("ABC", "A")}<br>

前者返回“false ”,后者返回“true ”

9.7.3 fn:containsIgnoreCase函数

fn:containsIgnoreCase函数与fn:contains函数的功能差不多,唯一的区别是fn:containsIgnoreCase函数对于子字符串的包含比较将忽略大小写。它与fn:contains函数相同,包括stringsubstring两个参数,并返回一个boolean类型的值。下面看一个示例。

${fn:containsIgnoreCase("ABC","a")}<br>

${fn:containsIgnoreCase("ABC","A")}<br>

前者和后者都会返回“true ”

9.7.4 词头判断函数fn:startsWith函数

fn:startsWith函数用来判断源字符串是否符合一连串的特定词头。它除了包含一个string参数外,还包含一个subffx参数,表示词头字符串,同样是String类型。该函数返回一个boolean类型的值。下面看一个示例。

${fn:startsWith ("ABC", "ab")}<br>

${fn:startsWith ("ABC", "AB")}<br>

前者返回“false ”,后者返回“true ”

9.7.5 词尾判断函数fn:endsWith函数

fn:endsWith函数用来判断源字符串是否符合一连串的特定词尾。它与fn:startsWith函数相同,包括stringsubffx两个参数,并返回一个boolean类型的值。下面看一个示例。

${fn:endsWith("ABC", "bc")}<br>

${fn:endsWith("ABC", "BC")}<br>

前者返回“false ”,后者返回“true ”

9.7.6 字符实体转换函数fn:escapeXml函数

fn:escapeXml函数用于将所有特殊字符转化为字符实体码。它只包含一个string参数,返回一个String类型的值。

9.7.8 字符匹配函数fn:indexOf函数

fn:indexOf函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“-1 ”。它包括stringsubstring两个参数,返回结果为int类型。下面看一个示例。

${fn:indexOf("ABCD","aBC")}<br>

${fn:indexOf("ABCD","BC")}<br>

前者由于没有匹配成功,所以返回-1,后者匹配成功将返回位置的下标,为1

9.7.9 分隔符函数fn:join函数

fn:join函数允许为一个字符串数组中的每一个字符串加上分隔符,并连接起来。它的参数、返回结果和描述如表9.25所示:

9.25 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 ”

9.7.10 替换函数fn:replace函数

fn:replace函数允许为源字符串做替换的工作。它的参数、返回结果和描述如表9.26所示:

9.26 fn:replace函数

参数

描述

inputString

源字符串。其类型必须为String类型

beforeSubstring

指定被替换字符串。其类型必须为String类型

afterSubstring

指定替换字符串。其类型必须为String类型

返回结果

返回一个String类型的值

下面看一个示例。

${fn:replace("ABC","A","B")}<br>

“ABC ”字符串替换为“BBC ”,在“ABC ”字符串中用“B ”替换了“A ”

9.7.11 分隔符转换数组函数fn:split函数

fn:split函数用于将一组由分隔符分隔的字符串转换成字符串数组。它的参数、返回结果和描述如表9.27所示:

9.27 fn:split函数

参数

描述

string

源字符串。其类型必须为String类型

delimiters

指定分隔符。其类型必须为String类型

返回结果

返回一个String[]类型的值

下面看一个示例。

${fn:split("A,B,C",",")}<br>

“A,B,C ”字符串转换为数组{A,B,C}

9.7.12 字符串截取函数fn:substring函数

fn:substring函数用于截取字符串。它的参数、返回结果和描述如表9.28所示:

9.28 fn:substring函数

参数

描述

string

源字符串。其类型必须为String类型

beginIndex

指定起始下标(值从0开始)。其类型必须为int类型

endIndex

指定结束下标(值从0开始)。其类型必须为int类型

返回结果

返回一个String类型的值

下面看一个示例。

${fn:substring("ABC","1","2")}<br>

截取结果为“B ”

 

9.7.14 起始到定位截取字符串函数fn:substringBefore函数

fn:substringBefore函数允许截取源字符从开始到某个字符串。它的参数和fn:substringAfter函数相同,不同的是substring表示的是结束字符串。下面看一个示例。

${fn:substringBefore("ABCD","BC")}<br>

截取的结果为“A ”

9.7.15 小写转换函数fn:toLowerCase函数

fn:toLowerCase函数允许将源字符串中的字符全部转换成小写字符。它只有一个表示源字符串的参数string,函数返回一个String类型的值。下面看一个示例。

${fn:toLowerCase("ABCD")}<br>

转换的结果为“abcd ”

9.7.16大写转换函数fn:toUpperCase函数

fn:toUpperCase函数允许将源字符串中的字符全部转换成大写字符。它与fn:toLowerCase函数相同,也只有一个String参数,并返回一个String类型的值。下面看一个示例。

${fn:toUpperCase("abcd")}<br>

转换的结果为“ABCD ”

9.7.17空格删除函数fn:trim函数

fn:trim函数将删除源字符串中结尾部分的空格以产生一个新的字符串。它与fn:toLowerCase函数相同,只有一个String参数,并返回一个String类型的值。下面看一个示例。

${fn:trim("AB C ")}D<br>

转换的结果为“AB CD ”,注意,它将只删除词尾的空格而不是全部,因此“B ”“C ”之间仍然留有一个空格。

 

9.4  JSTL XML processing标签库

在企业级应用越来越依赖XML的今天,XML格式的数据被作为信息交换的优先选择。XML processing标签库为程序设计者提供了基本的对XML格式文件的操作。在该标签库中的标签一共有10个,被分为了三类,分别是:

q    XML核心标签:<x:parse><x:out><x:set>

q    XML流控制标签:<x:if><x:choose><x:when><x:otherwise><x:forEach>

q    XML转换标签:<x:transform><x:param>

由于该组标签库专注于对某一特定领域的实现,因此本书将只选择其中常见的一些标签和属性进行介绍。

9.4.1 用于解析XML文件的<x:parse>标签

<x:parse>标签是该组标签库的核心,从其标签名就可以知道,它是作为解析XML文件而存在的。它的属性和描述如表9.12所示:

9.12 <x:parse>标签属性和说明

属性

描述

doc

XML的内容,该属性的内容应该为String类型或者java.io.Reader的实例,可以用xml属性来替代,但是不被推荐

var

将解析后的XML保存在该属性所指定的变量中,之后XML processing标签库中的其他标签若要取XML中的内容就可以从该变量中得到(可选)

scope

变量的作用范围(可选)

varDom

指定保存的变量为org.w3c.dom.Document接口类型(可选)

scopeDom

org.w3c.dom.Document的接口类型变量作用范围(可选)

systemId

定义一个URI,该URI将被使用到XML文件中以接入其他资源文件(可选)

filter

该属性必须为org.xml.sax.XMLFilter类的一个实例,可以使用EL表达式传入,将对XML文件做过滤得到自身需要的部分(可选)

其中,varscopevarDomscopeDom不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被XML processing标签库的其他标签来使用。

<x:parse>标签单独使用的情况很少,一般会结合XML processing标签库中的其他标签来一起工作。下面看一个示例。

首先给出一个简单的XML文件,将对该XML文件做解析,该XML文件名为SampleXml.xml

<?xml version="1.0"encoding="UTF-8"?>

<xml-body>

    <name>RW</name>

    <passWord>123456</passWord>

    <age>28</age>

    <books>

        <book>book1</book>

        <book>book2</book>

        <book>book3</book>

    </books>

</xml-body>

标签库的工作:

<c:import var="xmlFile"url="http://localhost:8080/booksamplejstl/SampleXml.xml"/>

<x:parse var="xmlFileValue"doc="${xmlFile}"/>

9.5  I18Nformatting标签库

看到I18N就应该想到知识国际化I18N formatting标签库就是用于在JSP页面中做国际化的动作。在该标签库中的标签一共有12个,被分为了两类,分别是:

q    国际化核心标签:<fmt:setLocale><fmt:bundle><fmt:setBundle><fmt:message><fmt:param><fmt:requestEncoding>

q    格式化标签:<fmt:timeZone><fmt:setTimeZone><fmt:formatNumber><fmt:parseNumber><fmt:formatDate><fmt:parseDate>

下面只选择其中常见的一些标签和属性进行介绍。

9.5.1 用于设置本地化环境的<fmt:setLocale>标签

<fmt:setLocale>标签用于设置Locale环境。它的属性和描述如表9.17所示:

9.17 <fmt:setLocale>标签属性和说明

属性

描述

value

MsoNo

分享到:
评论

相关推荐

    JSTL标签JSTL标签

    JSTL主要由以下几个核心组件组成: - **Core**:提供基本的控制流程标签,如条件语句、循环等。 - **Format**:处理日期、时间、数字格式化以及国际化。 - **XML**:处理XML文档和XPath表达式。 - **Function**:...

    JSTL的c标签的用法.doc

    下面我们将详细探讨`c`标签库的几个主要标签。 1. `&lt;c:set&gt;`:这个标签用于设置一个变量。例如,你可以将一个值赋给一个特定的范围(如page、request、session或application)。以下是一个例子: ```jsp &lt;c:set ...

    JSTL core c 标签 使用全集

    下面将详细介绍`c`标签中的几个主要标签及其用法。 #### 二、配置文件示例解析 在JSP页面中使用JSTL标签之前,通常需要在页面顶部添加如下代码来声明使用的标签库: ```xml &lt;%@ taglib prefix="c" uri=...

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JSTL 标签库的使用可以分为以下几个方面: 1. 循环输出数据:JSTL 的 foreach 标签可以用于循环输出数据。 例如:&lt;c:forEach var="emp" items="${emplist}"&gt; 循环输出 emplist 集合中的数据 2. 条件判断:JSTL 的...

    JSTL标准标签库

    JSTL主要由几个不同的标签库组成,包括核心标签库、SQL标签库、XML标签库以及函数标签库。 1. **核心标签库 (Core Tags):** 这个库定义了`cc.tld`,包含了用于常见任务的标签,如数据管理、流程控制和输出。主要...

    jstl标签库的配置

    **配置JSTL标签库**通常涉及以下几个步骤: 1. **添加依赖**:在项目中,你需要引入JSTL相关的jar文件。对于Maven项目,可以在pom.xml中添加如下依赖: ```xml &lt;groupId&gt;javax.servlet.jsp.jstl &lt;artifactId&gt;...

    JSTL 标签库 jsp C 标签库

    JSTL由以下几个主要的标签库组成: - **Core(C)库**:包含了用于控制流程的基本标签,如`&lt;c:if&gt;`、`&lt;c:choose&gt;`、`&lt;c:forEach&gt;`等。 - **I18N(Internationalization,国际化)库**:用于处理国际化和本地化,如`...

    JSTL核心标签库的jar包

    在Java Web开发中,JSTL的核心标签库(Core Tag Library)包含以下几个主要方面: 1. **流程控制**: - `&lt;c:if&gt;`:用于执行条件判断,可以根据指定的条件执行不同的代码块。 - `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:...

    JSTL标签库jar包

    `jstl.jar`**: 这个文件包含了JSTL的主要标签库实现,包括以下几个部分: - **Core Taglib**: 提供了一系列基础控制流标签,如条件语句(`&lt;c:if&gt;`, `&lt;c:choose&gt;`)、迭代(`&lt;c:forEach&gt;`, `&lt;c:forTokens&gt;`)、URL操作...

    自定义JSTL标签java项目文件

    自定义JSTL标签的创建涉及到以下几个步骤: 1. **创建Tag Handler类**:这是处理自定义标签逻辑的Java类,需要继承自`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext.SimpleTagSupport`。在这个...

    JSTL 标签库下载

    JSTL主要由以下几个核心部分组成:Core、XML、JDBC和Function。 在提供的压缩包`jakarta-taglibs-stard-current.rar`中,我们找到了两个关键的jar文件:`jstl.jar`和`standard.jar`。这两个文件在JSTL的使用中起着...

    JSTL标签库及使用方法

    在JSTL中,主要包含以下几个核心标签库: 1. **Core标签库 (c:)** - 提供了基本的控制结构,如迭代和条件语句。 2. **Format标签库 (fmt:)** - 用于日期、时间、数字格式化和国际化。 3. **Function标签库 (fn:)** ...

    jstl标签jar包

    JSTL标签库包括核心标签、XML处理标签、SQL标签和函数标签等几大类,覆盖了网页开发中的常见操作。 在JSP页面中使用JSTL,首先需要将对应的jar包添加到项目的类路径(classpath)中。这里提供的“jstl标签jar包”...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    **配置JSTL**的步骤通常包括以下几个部分: 1. 添加JSTL库:将JSTL的JAR文件(如`jstl.jar`和`standard.jar`)放入项目WEB-INF/lib目录下,或者如果使用Maven或Gradle,将依赖添加到构建文件中。 2. 引用JSTL库:...

    jstl标签库与使用教程

    JSTL由几个核心组件组成,主要包括Core、Format、Function、I18N和SQL等标签库。其中: - Core库提供了基本的控制流标签,如条件判断、循环等。 - Format库则负责国际化和格式化功能,如日期和数字的格式化。 - ...

    JSTL标签用法.doc

    通过这个标签,可以在不同的作用域(如page、request、session或application)中存储数据。示例: ```jsp &lt;c:set var="username" value="lisi" scope="session" /&gt; ``` 这里设置了一个名为 `username` 的session...

    JavaWeb-12:自定义标签库开发&JSTL标签库

    自定义标签的开发主要涉及以下几个步骤: 1. **创建TLD文件**:TLD(Tag Library Descriptor)文件是描述标签库的元数据文件,它定义了标签的名字、属性、返回类型等信息。例如: ```xml &lt;tlib-version&gt;1.0 ...

    JSTL标签课件PPT

    它包括几个主要的标签库,如Core、XML、I18N&Format和Function,覆盖了数据处理、控制流、国际化和函数等多个领域。 2. **Core库** Core库是JSTL中最基础的部分,提供了类似于Java中的流程控制结构,例如条件语句...

    jstl标签库jar包、例子、jstl中文帮助文档

    JSTL主要由以下几个核心模块组成: - **Core**:提供了基本的控制结构,如条件语句和循环。 - ** fmt**:用于格式化日期、数字和消息。 - **i18n**:支持国际化和本地化。 - **sql**:用于执行SQL查询和数据库操作。...

Global site tag (gtag.js) - Google Analytics