标签中的escapeXml是什么意思?

发布时间:2024-11-17 10:22:26 来源:君肯网

标签中有一个escapeXml属性,其默认值为true,意思是是否过滤为xml文档。

1. 如果为escapeXml=”false”,则将其中的html、xml解析出来。如value=”&ltfont size=16&gtjava&lt/font&gt”,会显示为大小为16的”java“。

2. 如果为escapeXml=”true”,则显示&ltfont size=16&gtjava&lt/font&gt在项目中有时需要在后台将字符串拼接,然后传到前台显示。当在后台拼接的时候比如拼接了特殊字符如@、#、《》,&lt,&gt等的时候,传到前台时,和html的标签或者其他有冲突,导致不能正常显示。

3. 比如刚刚在后台拼接了几个&ltbr&gt想用于前台换行,结果用jstl的c:out输出到前台的时候成了。

4. 在&ltc:out value=”值”escapeXml=”false” /&gt中加入escapeXml=”false”就能阻止这种冲突。

5. 然后在需要显示的地方写入${fn:escapeXml(后台传值)},这样也能解决。以上是jstl的解决方法。

6. 在struts中是用&lts:property value=”escape=”值”escape=”false”/&gt解决的。

<c:out value=”${buttons}” escapeXml=”false” />

${fn:escapeXml(param)}这样才是将字符转换

而out里面的这个的意思是是否过滤为xml文档。

如果为false,则将其中的html、xml解析出来。

如&ltfont size=16&gtjava&lt/font&gt,会显示为大小为16的”java“

如果为true,则显示&ltfont size=16&gtjava&lt/font&gt

求助:EL表达式c:out的问题

这是JSTL标签的用法

JSTL简介

JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。

JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签:

标签 URI前 缀 示例

Core http://java.sun.com/jstl/core c &ltc:tagname …&gtXML processing http://java.sun.com/jstl/xml x &ltx:tagname …&gtI18N capable formatting http://java.sun.com/jstl/fmt fmt &ltfmt:tagname …&gtDatabase access (SQL) http://java.sun.com/jstl/sql sql &ltsql:tagname …&gt

Core支持JSP中的一些基本的操作;

XML processing支持XML文档的处理;

I18N capable formatting支持对JSP页面的国际化;

Database access (SQL)支持JSP对数据库的操作。

由于本人水平有限,本文仅介绍Core标签,如有兴趣,可一起探讨其它三种标签的使用与扩充。

EL语言介绍

EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。

在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式来进行调用。在属性值中使用表达式有三种方式。

1、 value属性包含一个表达式

&ltsome:tag value=””/&gt

在这种情况下,表达式值被计算出来并根据类型转换规则赋值给value属性。比如:&ltc:out value=”” /&gt中的就是一个EL,它相当于JSP语句&lt%=request.getAttribute(“username”)%&gt或&lt% =session.getAttribute(“username”)%&gt

2、 value属性包含一个或多个属性,这些属性被文本分割或围绕

&ltsome:tag value=”sometext”/&gt

在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给value属性

3、 value属性仅仅包含文本

&ltsome:tag value=”sometext”/&gt

在这种情况下,字符串型属性value将根据类型转换规则转换为标签所希望的类型。

EL语言的操作符

取得某个对象或集合中的属性值

为了获得集合中的属性,EL支持以下两种操作

1.使用.操作符来获得有名字的属性。例如表达式表明对象user的username属性

2. 使用[]操作符来获得有名字或按数字排列的属性。

表达式和表达式含义相同

表达式 表明row集合的第一个条目。

在这里user是一个类的对象,它的属性username必须符合标准JavaBean的规范,即必须为username属性定义相应的getter、setter方法。

Empty操作符(空值检查)

使用empty操作符来决定对象、集合或字符串变量是否为空或null。例如:

true

如果request的参数列表中的username值为null,则表达式的值为true。 EL也可以直接使用比较操作符与null进行比较。如true。

比较操作符 操作符 描述

==或eq 相等检查

!=或ne 不等检查

&lt或lt 小于检查

&gt或gt 大于检查

&lt=或le 小于等于检查

&gt=或ge 大于等于检查

数字运算符与逻辑运算符均与JAVA语言相同,不再列表。

Core标签库

1、 通用标签

&ltc:out&gt

&ltc:out&gt标签用于在JSP中显示数据,它有如下属性 属 性 描 述是否必须 缺省值

value 输出的信息,可以是EL表达式或常量 是 无

default value为空时显示信息 否 无

escapeXml 为true则避开特殊的xml字符集 否 true

例子: 您的用户名是: &ltc:out value=”” default=”guest”/&gt

显示用户的用户名,如为空则显示guest

&ltc:out value=””/&gt

指定从session中获取username的值显示;

&ltc:out value=”” /&gt

显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取, session中没有则从application(servletContext)中取,如果没有取到任何值则不显示。

&ltc:set&gt

&ltc:set&gt标签用于保存数据,它有如下属性 属 性 描 述 是否必须缺省值

value 要保存的信息,可以是EL表达式或常量 否

target 需要修改属性的变量名,一般为javabean的实例 否 无

property 需要修改的javabean属性 否 无

var 需要保存信息的变量 否 无

scope 保存信息的变量的范围 否 page

如果指定了target属性, 那么property属性也必须指定。

例子: &ltc:set value=”” var=”test2” scope=”session” /&gt

将test.testinfo的值保存到session的test2中,其中test是一个javabean的实例,testinfo是test对象的属性。

&ltc:set target=”” property=”city” value=””/&gt

将对象cust.address的city属性值保存到变量city中

&ltc:remove&gt

&ltc:remove&gt标签用于删除数据,它有如下属性 属 性 描 述 是否必须缺省值

var 要删除的变量 是 无

scope 被删除变量的范围 否所有范围,包括page、request、session、application等

例子: &ltc:remove var=”test2” scope=”session”/&gt

从session中删除test2变量。

2、 流控制标签

&ltc:if&gt

&ltc:if&gt标签有如下属性 属 性 描 述 是否必须 缺省值

test 需要评价的条件,相当于if (…){}语句中的条件 是 无

var 要求保存条件结果的变量名 否 无

scope 保存条件结果的变量范围 否 page

&ltc:choose&gt

这个标签不接受任何属性

&ltc:when&gt

&ltc:when&gt标签有以下属性 属 性 描 述 是否必须 缺省值

test 需要评价的条件 是 无

&ltc:otherwise&gt

这个标签同样不接受任何属性

例子: &ltc:if test=””&gt

user.wealthy is true.

&lt/c:if&gt

如果user.wealthy值true,则显示user.wealthy is true.

&ltc:choose&gt

&ltc:when test=””&gt

user.generous is true.

&lt/c:when&gt

&ltc:when test=””&gt

user.stingy is true.

&lt/c:when&gt

&ltc:otherwise&gt

user.generous and user.stingy are false.

&lt/c:otherwise&gt

&lt/c:choose&gt

只有当条件user.generous返回值是true时,才显示user.generous is true.

只有当条件user.stingy返回值是true时,才显示user.stingy is true.

其它所有的情况(即user.generous和user.stingy的值都不为true)全部显示user.generous and user.stingy are false.

由于JSTL没有形如if (){…} else {…}的条件语句,所以这种形式的语句只能用&ltc:choose&gt、&ltc:when&gt和&ltc:otherwise&gt标签共同来完成了。

3、 循环控制标签

&ltc:forEach&gt

&ltc:forEach&gt标签用于通用数据,它有以下属性 属 性 描 述是否必须 缺省值

items 进行循环的项目 否 无

begin 开始条件 否 0

end 结束条件 否 集合中的最后一个项目

step 步长 否 1

var 代表当前项目的变量名 否 无

varStatus 显示循环状态的变量 否 无

例子: &ltc:forEach items=”” var=”vector”&gt

&ltc:out value=””/&gt

&lt/c:forEach&gt

相当于java语句 for (int i=0i&ltvectors.size()i++) {

out.println(vectors.get(i))

}

在这里vectors是一个java.util.Vector对象,里面存放的是String数据,vector是当前循环条件下String对象。实际上这里的vectors可以是任何实现了java.util. Collection接口的对象。

&ltc:forEach begin=”0” end=”100” var=”i” step=”1”&gt

count=&ltc:out value=””/&gt&ltbr&gt

&lt/c:forEach&gt

输出:

count=0

count=100

&ltc:forTokens&gt

&ltc:forTokens&gt标签有以下属性 属 性 描 述 是否必须 缺省值

items 进行循环的项目 是 无

delims 分割符 是 无

begin 开始条件 否 0

end 结束条件 否 集合中的最后一个项目

step 步长 否 1

var 代表当前项目的变量名 否 无

varStatus 显示循环状态的变量 否 无

例子

&ltc:forTokens items=”a:b:c:d” delims=”:” var=”token”&gt

&ltc:out value=””/&gt

&lt/c:forTokens&gt

这个标签的使用相当于java.util.StringTokenizer类。在这里将字符串a:b:c:d以:分开循环四次,token是循环到当前分割到的字符串。

4.导入文件和URL

JSTL核心标签库支持使用&ltc:import&gt来包含文件,使用&ltc:url&gt来打印和格式化URL,使用&ltc:redirect&gt来重定向URL。

&ltc:import&gt

&ltc:import&gt标签包含另外一个页面代码到当前页,它有以下属性 属性 描 述 是否必须 缺省值

url 需要导入页面的url 是 无

context /后跟本地web应用程序的名字 否 当前应用程序

charEncoding 用于导入数据的字符集 否 ISO-8859-1

var 接受导入文本的变量名 否 page

scope 接受导入文本的变量的变量范围 否 1

varReader 用于接受导入文本的java.io.Reader变量名 否 无

varStatus 显示循环状态的变量 否 无

&ltc:url&gt

&ltc:url&gt标签输出一个url地址,它有以下属性 属 性 描 述 是否必须缺省值

url url地址 是 无

context /后跟本地web应用程序的名字 否 当前应用程序

charEncoding 用于导入数据的字符集 否 ISO-8859-1

var 接受处理过的url变量名,该变量存储url 否 输出到页

scope 存储url的变量名的变量范围 否 page

例子:

&ltc:import url=”http://www.url.com/edit.js” var=”newsfeed”/&gt

将url http://www.url.com/edit.js包含到当前页的当前位置,并将url保存到newsfeed变量中

&lta href=”&ltc:url url=”/index.jsp”/&gt”/&gt

在当前页的当前位置输出&lta href=”http://www.yourname.com/index.jsp”/&gt,http://www.yourname.com是当前页的所在的位置。

&ltc:redirect&gt

&ltc:redirect&gt标签将请求重新定向到另外一个页面,它有以下属性 属性 描 述 是否必须 缺省值

url url地址 是 无

context /后跟本地web应用程序的名字 否 当前应用程序

例子:

&ltc:redirect url=”http://www.yourname.com/login.jsp”/&gt

将请求重新定向到http://www.yourname.com/login.jsp页,相当于response.setRedirect(”http://www.yourname.com/login.jsp”)

&ltc:param&gt

&ltc:param&gt标签用来传递参数给一个重定向或包含页面,它有以下属性属 性 描 述 是否必须 缺省值

name 在request参数中设置的变量名 是 无

value 在request参数中设置的变量值 否 无

例子:

&ltc:redirect url=”login.jsp”&gt

&ltc:param name=”id” value=”888”/&gt

&lt/c:redirect&gt

将参数888以id为名字传递到login.jsp页面,相当于login.jsp?id=888

JSTL的优点

1、在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。

2、 简化了JSP和WEB应用程序的开发。

3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet代码的程序。在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。

4、允许JSP设计工具与WEB应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。

总结

上面介绍的仅仅是JSTL的一部分,如果要使用JSTL,则必须将jstl.jar和 standard.jar文件放到classpath中,如果你还需要使用XML processing及Database access (SQL)标签,还要将相关JAR文件放到classpath中,这些JAR文件全部存在于下载回来的zip文件中。这个zip文件可以从http://jakarta.apache.org/builds/jakarta-taglibs/releases/standard/jakarta-taglibs-standard-1.0.zip下载。

参考资料

1、 http://java.sun.com/products/jsp/jstl/

sun公司的JSTL站点

2、 http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html

jakarta小组的JSTL站点

3、 http://www.manning.com/bayern/appendixA.pdf

JSTL的参考文档,本文很多内容都是从这个PDF文件里翻译的。

4、 <<J2EE编程指南(1.3版)>>

介绍了JSTL的雏形,wrox的书都是精品。

jsp中想实现自动注销功能,使用$(function(){}提示无法定义$?

&ltc:out&gt标签的作用是用来显示表达式的值。它的作用是用来替代通过JSP内置对象out或者&lt%=%&gt标签来输出对象的值。

&ltc:out&gt标签的语法说明如下:

&ltc:out value=”expression” default=”expression” escapeXml=”boolean”/&gt

&ltc:out&gt标签具有以下一些属性:

l value:用来定义需要求解的表达式。

l default:缺省值。当求解后的表达式为null或者String为空时将打印这个缺省值。

l escapeXML:这个属性是可选的。用于指定在使用&ltc:out&gt标记输出诸如“&lt”、“&gt”和“&amp”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为true,则会自动的进行编码处理。

java

登录

qingqing_yixiao

关注

jsp的functions函数的用途和属性以及简单示例 原创

2013-09-17 18:09:52

qingqing_yixiao

码龄6年

关注

一.长度函数 fn:length 函数

长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中,有一个功能被忽略了,那就是对集合的长度取值。虽然 java.util.Collection 接口定义了 size 方法,但是该方法不是一个标准的 JavaBean 属性方法(没有 get,set 方法),因此,无法通过 EL 表达式“ ${collection.size} ”来轻松取得。

fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input ,将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int 类型的值。下面看一个示例。

&lt%ArrayList arrayList1 = new ArrayList()

arrayList1.add(”aa”)

arrayList1.add(”bb”)

arrayList1.add(”cc”)

%&gt

&lt%request.getSession().setAttribute(”arrayList1”, arrayList1)%&gt

标签中的escapeXml是什么意思?

${fn:length(sessionScope.arrayList1)}

假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length 函数后就可以取得返回结果为“ 3 ”。

二.判断函数 fn:contains 函数

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

${fn:contains(”ABC”, ”a”)}&ltbr&gt

${fn:contains(”ABC”, ”A”)}&ltbr&gt

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

三. fn:containsIgnoreCase 函数

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

${fn:containsIgnoreCase(”ABC”, ”a”)}&ltbr&gt

${fn:containsIgnoreCase(”ABC”, ”A”)}&ltbr&gt

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

四.词头判断函数 fn:startsWith 函数

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

${fn:startsWith (”ABC”, ”ab”)}&ltbr&gt

${fn:startsWith (”ABC”, ”AB”)}&ltbr&gt

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

五.词尾判断函数 fn:endsWith 函数

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

${fn:endsWith(”ABC”, ”bc”)}&ltbr&gt

${fn:endsWith(”ABC”, ”BC”)}&ltbr&gt

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

六.字符实体转换函数 fn:escapeXml 函数

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

七.字符匹配函数 fn:indexOf 函数

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

${fn:indexOf(”ABCD”,”aBC”)}&ltbr&gt

${fn:indexOf(”ABCD”,”BC”)}&ltbr&gt

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

八.分隔符函数 fn:join 函数

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

表 1  fn:join 函数

参数

描述

array

字符串数组。其类型必须为 String[] 类型

separator

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

返回结果

返回一个 String 类型的值

下面看一个示例。

&lt% String[] stringArray = {”a”,”b”,”c”}%&gt

&lt%request.getSession().setAttribute(”stringArray”, stringArray)%&gt

${fn:join(sessionScope.stringArray,””)}&ltbr&gt

定义数组并放置到 Session 中,然后通过 Session 得到该字符串数组,使用 fn:join 函数并传入分隔符“ ”,得到的结果为“ abc ”。

九.替换函数 fn:replace 函数

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

表 2  fn:replace 函数

参数

描述

inputString

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

beforeSubstring

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

afterSubstring

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

返回结果

返回一个 String 类型的值

下面看一个示例。

${fn:replace(”ABC”,”A”,”B”)}&ltbr&gt

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

十.分隔符转换数组函数 fn:split 函数

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

表3   fn:split 函数

参数

描述

string

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

delimiters

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

返回结果

返回一个 String[] 类型的值

下面看一个示例。

${fn:split(”A,B,C”,”,”)}&ltbr&gt

将“ 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”)}&ltbr&gt

截取结果为“ B ”。

十二.起始到定位截取字符串函数 fn:substringBefore 函数

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

${fn:substringBefore(”ABCD”,”BC”)}&ltbr&gt

截取的结果为“ A ”。

十三.小写转换函数 fn:toLowerCase 函数

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

${fn:toLowerCase(”ABCD”)}&ltbr&gt

转换的结果为“ abcd ”。

十三.大写转换函数 fn:toUpperCase 函数

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

${fn:toUpperCase(”abcd”)}&ltbr&gt

转换的结果为“ ABCD ”。

十四.空格删除函数 fn:trim 函数

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

${fn:trim(”AB C ”)}D&ltbr&gt

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

java

登录

qingqing_yixiao

关注

jsp的functions函数的用途和属性以及简单示例 原创

2013-09-17 18:09:52

qingqing_yixiao

码龄6年

关注

一.长度函数 fn:length 函数

长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中,有一个功能被忽略了,那就是对集合的长度取值。虽然 java.util.Collection 接口定义了 size 方法,但是该方法不是一个标准的 JavaBean 属性方法(没有 get,set 方法),因此,无法通过 EL 表达式“ ${collection.size} ”来轻松取得。

fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input ,将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int 类型的值。下面看一个示例。

&lt%ArrayList arrayList1 = new ArrayList()

arrayList1.add(”aa”)

arrayList1.add(”bb”)

arrayList1.add(”cc”)

%&gt

&lt%request.getSession().setAttribute(”arrayList1”, arrayList1)%&gt

${fn:length(sessionScope.arrayList1)}

假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length 函数后就可以取得返回结果为“ 3 ”。

二.判断函数 fn:contains 函数

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

${fn:contains(”ABC”, ”a”)}&ltbr&gt

${fn:contains(”ABC”, ”A”)}&ltbr&gt

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

三. fn:containsIgnoreCase 函数

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

${fn:containsIgnoreCase(”ABC”, ”a”)}&ltbr&gt

${fn:containsIgnoreCase(”ABC”, ”A”)}&ltbr&gt

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

四.词头判断函数 fn:startsWith 函数

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

${fn:startsWith (”ABC”, ”ab”)}&ltbr&gt

${fn:startsWith (”ABC”, ”AB”)}&ltbr&gt

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

五.词尾判断函数 fn:endsWith 函数

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

${fn:endsWith(”ABC”, ”bc”)}&ltbr&gt

${fn:endsWith(”ABC”, ”BC”)}&ltbr&gt

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

六.字符实体转换函数 fn:escapeXml 函数

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

七.字符匹配函数 fn:indexOf 函数

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

${fn:indexOf(”ABCD”,”aBC”)}&ltbr&gt

${fn:indexOf(”ABCD”,”BC”)}&ltbr&gt

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

八.分隔符函数 fn:join 函数

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

表 1  fn:join 函数

参数

描述

array

字符串数组。其类型必须为 String[] 类型

separator

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

返回结果

返回一个 String 类型的值

下面看一个示例。

&lt% String[] stringArray = {”a”,”b”,”c”}%&gt

&lt%request.getSession().setAttribute(”stringArray”, stringArray)%&gt

${fn:join(sessionScope.stringArray,””)}&ltbr&gt

定义数组并放置到 Session 中,然后通过 Session 得到该字符串数组,使用 fn:join 函数并传入分隔符“ ”,得到的结果为“ abc ”。

九.替换函数 fn:replace 函数

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

表 2  fn:replace 函数

参数

描述

inputString

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

beforeSubstring

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

afterSubstring

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

返回结果

返回一个 String 类型的值

下面看一个示例。

${fn:replace(”ABC”,”A”,”B”)}&ltbr&gt

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

十.分隔符转换数组函数 fn:split 函数

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

表3   fn:split 函数

参数

描述

string

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

delimiters

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

返回结果

返回一个 String[] 类型的值

下面看一个示例。

${fn:split(”A,B,C”,”,”)}&ltbr&gt

将“ 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”)}&ltbr&gt

截取结果为“ B ”。

十二.起始到定位截取字符串函数 fn:substringBefore 函数

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

${fn:substringBefore(”ABCD”,”BC”)}&ltbr&gt

截取的结果为“ A ”。

十三.小写转换函数 fn:toLowerCase 函数

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

${fn:toLowerCase(”ABCD”)}&ltbr&gt

转换的结果为“ abcd ”。

十三.大写转换函数 fn:toUpperCase 函数

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

${fn:toUpperCase(”abcd”)}&ltbr&gt

转换的结果为“ ABCD ”。

十四.空格删除函数 fn:trim 函数

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

${fn:trim(”AB C ”)}D&ltbr&gt

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

以上就是关于标签中的escapeXml是什么意思?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

标签中有一个escapeXml属性,其默认值为true,意思是是否过滤为xml文档。 1. 如果为escapeXml=”fals…
查看详情
标签中有一个escapeXml属性,其默认值为true,意思是是否过滤为xml文档。 1. 如果为escapeXml=”fals…
查看详情
标签中有一个escapeXml属性,其默认值为true,意思是是否过滤为xml文档。 1. 如果为escapeXml=”fals…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载