JSTL中 fn 标签库的使用_jstl中<fn:split>标签的功能-程序员宅基地

技术标签: Java  

在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>就可以使用fn标签了。

使用此标签可以帮我们在jsp页面不再嵌入那么多的java代码,如分割函数split()的使用等。

具体使用方法请参见下表:

函数

描述

fn:contains(string, substring)

如果参数string中包含参数substring,返回true

fn:containsIgnoreCase(string, substring)

如果参数string中包含参数substring(忽略大小写),返回true

fn:endsWith(string, suffix)

如果参数 string 以参数suffix结尾,返回true

fn:escapeXml(string)

将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回

fn:indexOf(string, substring)

返回参数substring在参数string中第一次出现的位置

fn:join(array, separator)

将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。

fn:length(item)

返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。

fn:replace(string, before, after)

返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果

fn:split(string, separator)

返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素

fn:startsWith(string, prefix)

如果参数string以参数prefix

开头,返回true

fn:substring(string, begin, end)

返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符

fn:substringAfter(string, substring)

返回参数substring在参数string中后面的那一部分字符串

fn:substringBefore(string, substring)

返回参数substring在参数string中前面的那一部分字符串

fn:toLowerCase(string)

将参数string所有的字符变为小写,并将其返回

fn:toUpperCase(string)

将参数string所有的字符变为大写,并将其返回

fn:trim(string)

去除参数string 首尾的空格,并将其返回

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

长度函数:fn:length

字符串处理函数:fn:contains、fn:containsIgnoreCase、fn:endsWith、fn:escapeXml、fn:indexOf、fn:join、fn:replace、fn:split、fn:startsWith、fn:substring、fn:substringAfter、fn:substringBefore、fn:toLowerCase、fn:toUpperCase、fn: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函数用来判断源字符串是否包含子字符串。它包括string和substring两个参数,它们都是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函数相同,包括string和substring两个参数,并返回一个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函数相同,包括string和subffx两个参数,并返回一个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”。它包括string和substring两个参数,返回结果为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”。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011199063/article/details/54925980

智能推荐

我的世界哪个服务器有职业系统,我的世界村民职业大全 村民对应的工作台是什么..._漂流·甘草的博客-程序员宅基地

大家好,我是风游,我的世界7月4日更新了村庄玩法,外观上的变化,村民的职业也有了很大的拓展,在村庄中我们可以找到各种职业的村民,每种职业村民还会贩卖不同的道具,冒险家还可以给无业村民赋予职业,而赋予职业的方法,就是在他身边放一个对应的职业工作台。那么我的世界中一共有几种类型的村民,他们贩卖的道具有哪些,对应的道具方块又是什么,一起来看看吧。村民版本变化①全新外观:村民的外观由交易等级、职业和生物群..._村民职业对应工作台

使用tensorflow 提取特征图(How to use tensorflow to extract feature map from checkpoint)_tensorflow提取特征-程序员宅基地

如何使用tensorflow 提取特征图 ?》首先模型训练结束后,我们会得到关于【3】【4】检查点的四个文件:.data, .index, .meta, checkpoint;其中.meta是图结构,也就是神经网络的结构,在训练过程中图结构水不不变的,保存一次即可。实现:saver = tf.train.Saver(), saver.save(less, ‘model-name’,w..._tensorflow提取特征

[又出问题了]51cto的博客怎么没办法订阅rss了??-程序员宅基地

5.24更新:周博通又提示无法识别rss地址了,我已经联系周博通作者了,希望能有解决办法!!51cto的rss源不能用了。单击打开,提示打不开。使用周伯通、sharpreader、博阅等不下于5款知名rss阅读软件,均没发现可以订阅的,都踢死“地址输入不正确”。。。。。唯一可以使用的就是google reader了,支持很好,可惜我不..._51cto rss feed

重载数组下标操作符,使用operator_重载数组下标运算符-程序员宅基地

重载数组下标操作符,使用operator原贴:http://blog.csdn.net/keeplooking2510/article/details/8042057 数组在类的定义中确定好了长度之后,就会限制所要存储的元素的个数,假如我们要存储的元素的个数超过了已确定的数组的长度,那么就会导致数组越界。故最好的办法就是在创建对象的时候才确定要存储元素的个数,即数组的长度_重载数组下标运算符

程序猿日记S01E03-程序员宅基地

"Wake me up when it's done."礼物文化有一次给组员分享程序猿该如何去尽力帮助到其他人,如何赢得声誉。在日常开发过程中,我们在实现业务需求的同时,抽象出可复用的模块,提供API供业务层调用。不同的程序猿会设计出不一样的API,好的设计往往是遵循一定原则的。网上比较经典的是Google API Design指南,可以作为一个模板...

matlab xpc target 主从双机通信搭建问题及解决办法_xpc-target搭建-程序员宅基地

问题1、目标机启动盘制作问题之前有通过Uboot Flashboot制作目标启动盘,有的启动不了,有的是直接启动到DOS界面,但结果都不是我们所需要的结果,我们所需要的结果是启动到如下界面。 启动到如下界面的优盘启动盘制作方式是通过matlab制作,制作页面如下:其中boot configuration下的Create boot disk按钮就是制作启动盘的,通过此制作方式我们的优盘_xpc-target搭建

随便推点

PTA题目集:L1-064 估值一亿的AI核心代码 (20分)——STL(调试到吐)_价值一亿的ai核心代码pta测试点-程序员宅基地

原题链接题目:输入样例:6Hello ? Good to chat with youcan you speak Chinese?Really?Could you show me 5What Is this prime? I,don 't know输出样例:Hello ?AI: hello! Good to chat with youAI: good to chat with youcan you speak Chinese?AI: I can speak_价值一亿的ai核心代码pta测试点

审批流(一)_审批流状态-程序员宅基地

需求:审批流程自定义审批的每个节点可以有多个审核人,有一个失败则视为审批失败审批的过程可以自由前进后退:当发文到达某个节点失败后,会自动被打回到上一个节点.上一个节点可以选择修改后继续提交,或者再打回到上一个节点.整个审批可以看成是三种状态:1.草稿:来自两种情况:1.发起人刚起草审核.2.审核被第一个审核人打回此状态下发起人可自由修改发文_审批流状态

html调用路由html文档,使用静态HTML文件的主干路由-程序员宅基地

我正在使用第三方Web服务的网站上返回动态内容,并使用JavaScript解析并显示该页面的数据。我们已经在网站上的几个地方使用骨干将数据发布到web服务,所以我想到了试图使用Backbone的路由器来运行基于页面url的特定功能并获取查询,因为我们将查询散列到页面的网址。使用静态HTML文件的主干路由例如:全球站点search.html#查询这是路由器代码,我有这一点:var Router = ..._在静态html页面中使用路由

启动服务OracleMTSRecoveryService时出现操作系统错误-程序员宅基地

昨天在Windows server2008R2上安装11.2.0.4的时候,安装到一半,出现错误“启动服务OracleMTSRecoveryService时出现操作系统错误”。参考MOS:OS error in starting service OracleMTSRecoveryService OR System error 14001 has occurred (文档 ID 1471946.1)..._启动服务oraclemtsrecoveryservice

2021-02-23_http://img04.sogoucdn.com/app/a/100520146/a914d98b_划水的阿瞒的博客-程序员宅基地

双非大学生应该做什么样的兼职呢?大学里面的兼职各种各样,但是能提高自己的兼职并不多不算很多,因为是双非,所以很多要求高的兼职别人都不会要,大多数人都会被别人当做推广或者韭菜直接收割!一定不要去做推广性质的小代理,那些小代理只是别人推广的工具,你的朋友圈和人脉圈都会被别人利用,别人也有可能因此对你产生不一样的看法,这种兼职没有任何营养可言!接下来我给大家推荐几个有用的兼职,第一个是大家最看不上的,那就是发传单之类的需要自己放低尊严的兼职,很多人会觉得很好笑,为什么我会给大家推荐这样的兼职呢?不是很多博主_http://img04.sogoucdn.com/app/a/100520146/a914d98bc86d9061656c7fe2a0819c97

pycharm pro版本激活-程序员宅基地

这几天行激活pycharm pro版会遇到问题,license server的网址都不可用了。包括各个网站的百度云的破解资源链接都被和谐了,发现最近jetbrains对盗版管得严。 首次安装在注册界面选择licence server激活模式 输入http://elporfirio.com:1017/ http://www.imsxm.com/ h..._pyc pro