JSTL中的fn函数

一、概念  

JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

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

二、详解

fn:contains(string, substring)

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

例如:<c:if test="${fn:contains(name, searchString)}">

fn:containsIgnoreCase(string, substring)

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

例如:<c:if test="${fn:containsIgnoreCase(name, searchString)}">

 
fn:endsWith(string, suffix)

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

例如:<c:if test="${fn:endsWith(filename, ".txt")}">

 
fn:escapeXml(string)

将有非凡意义的XML(和HTML)转换为对应的XML character entity code,如<字符应该转为&lt,并返回

例如: ${fn:escapeXml(param:info)}

 
fn:indexOf(string, substring)

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

${fn:indexOf(name, "-")}

 
fn:join(array, separator)

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

${fn:join(array, ";")}

 

fn:length(item)

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

${fn:length(shoppingCart.products)}

 
fn:replace(string, before, after)

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

${fn:replace(text, "-", "•")}

fn:split(string, separator)

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

${fn:split(customerNames, ";")}

 

fn:startsWith(string, prefix)

假如参数string以参数prefix开头,返回true

<c:if test="${fn:startsWith(product.id, "100-")}">

 

fn:substring(string, begin, end)

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

${fn:substring(zip, 6, -1)}

fn:substringAfter(string, substring)

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

${fn:substringAfter(zip, "-")}

fn:substringBefore(string, substring)

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

${fn:substringBefore(zip, "-")}

fn:toLowerCase(string)

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

${fn.toLowerCase(product.name)}

 
fn:toUpperCase(string)

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

${fn.UpperCase(product.name)}

fn:trim(string)

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

${fn.trim(name)}

三、例子

<c:set var="testStr" value="${analyze.command}" />  

<c:choose>  
<c:when test="${fn:length(testStr) > 100}">  
<c:out value="${fn:substring(testStr, 0, 100)}" />  ......  
</c:when>  
<c:otherwise>  
<c:out value="${testStr}" />  
</c:otherwise>  
</c:choose> 

原帖地址

http://blog.csdn.net/donghustone/article/details/6711999

http://jakend.iteye.com/blog/654882

时间: 2024-12-10 18:37:19

JSTL中的fn函数的相关文章

JSTL中取得int类型数据的长度

JSTL中没有把int类型转成string的函数,要想解决获得int类型数据的长度,缺失麻烦. 获得String数据的长度要jstl的fn即可${fn:length(string)},但是int数据呢? 经过测试,下面的方法可行: [java] view plain copy  print? <%       request.setAttribute("test",123);      %>      ${fn:length(fn:substring(test,0,10))

JavaScript中的普通函数与构造函数比较

 问题 什么是构造函数? 构造函数与普通函数区别是什么? 用new关键字的时候到底做了什么? 构造函数有返回值怎么办? 构造函数能当普通函数调用吗? 以下是我的一些理解,理解错误的地方恳请大家帮忙指正,谢谢! this this永远指向当前正在被执行的函数或方法的owner.例如: 1 2 3 4 5 function test(){ console.log(this); } test(); //Window {top: Window, window: Window, location: Loc

jquery中常用的函数和属性详细解析

 本篇文章主要是对jquery中常用的函数和属性进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Dom: Attribute:属性 $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img").attr({src:"test.jpg",title:"test Image"}); 给某个元素添加属性/值,参数是map $("input").attr({&qu

python模块创建,如何封装C#中定义的函数

问题描述 python模块创建,如何封装C#中定义的函数 我的平台包含了python脚本编写和执行,其中我在平台中有一个函数是 public class FnValues { public int Pn; public string Fn; public string [] Values; } 而我在python脚本的模块函数中用到了这个函数: def Get_Meter_Reading(cs,a): fnValue1=FnValues(); fnValue1.Fn="30" fnVa

JavaScript中的普通函数与构造函数比较_javascript技巧

问题 什么是构造函数? 构造函数与普通函数区别是什么? 用new关键字的时候到底做了什么? 构造函数有返回值怎么办? 构造函数能当普通函数调用吗? 以下是我的一些理解,理解错误的地方恳请大家帮忙指正,谢谢! this this永远指向当前正在被执行的函数或方法的owner.例如: function test(){ console.log(this); } test(); //Window {top: Window, window: Window, location: Location, exte

SQL Server中的RAND函数的介绍和区间随机数值函数的实现

工作中会遇到SQL Server模拟数据生成以及数值列值(如整型.日期和时间数据类型)随机填充等等任务,这些任务中都要使用到随机数.鉴于此,本文将对SQL Server中随机数的使用简单做个总结 . T-SQL 随机有关的三个函数 RAND([seed] 此函数生成从0到1之间随机 float 值(详细说明查看https://technet.microsoft.com/zh-cn/library/ms177610(v=sql.90).aspx). CHECKSUM ( * | expressio

c++问题-C++的类中怎么在一个函数中引用上一层的函数

问题描述 C++的类中怎么在一个函数中引用上一层的函数 在同一个类中怎么引用先定义的函数来定义函数?比如在一个时期类的定义中,一个日期加1的函数中怎么调用先定义的一个求是否闰年的函数. 解决方案 C++定义隐式转换函数将类转换为内部的一个成员变量c++函数默认参数是一个好的设计吗? 解决方案二: 直接在函数内调用就可以了.不知道你说的上一层是什么意思.是基类的函数还是集合类所属的对象的函数,前者直接调用,或者用 基类类名::函数名后者用构造函数传对象指针 解决方案三: 同一个类中的函数都是通过t

constraint-在check中使用case函数,为什么end后面要加 =1

问题描述 在check中使用case函数,为什么end后面要加 =1 alter table Salaryadd CONSTRAINT check__salary CHECK( CASE WHEN sex = '2' THEN CASE WHEN salary > 1000 THEN 1 ELSE 0 END ELSE 1 END =1 )_**_** 为什么上面语句最后结束的时候(end 后面)要加上 "=1",否则会提示下面的错误信息:An expression of non

sql-在android中无法使用LIKE函数

问题描述 在android中无法使用LIKE函数 不知道为什么sql语句不运行,请帮忙.谢谢 public Cursor getContactMatches(String query, String[] columns) { String selection = COL_NAME + " LIKE " + "'%" + "%'"; <---- right here Log.d("selection", selection