`
lijun87
  • 浏览: 263629 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JSTL字符串处理函数

阅读更多

 

JSTL使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错。

因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下

${ns:methodName(args....)}

在使用这些函数之前必须在JSP中引入标准函数的声明

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

下面是JSTL中自带的方法列表以及其描述

 

 

函数名     函数说明
contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}">
containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}">
endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}">
escapeXml 把一些字符转成XML表示,例如<字符应该转为&lt; ${fn:escapeXml(param:info)}
indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")}
join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")}
length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)}
replace 替换字符串中指定的字符 ${fn:replace(text, "-", "?")}
split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")}
startsWith 判断字符串是否以某个子串开始 <c:if test="${fn:startsWith(product.id, "100-")}">
substring 获取子串 ${fn:substring(zip, 6, -1)}
substringAfter 获取从某个字符所在位置开始的子串
${fn:substringAfter(zip, "-")}
substringBefore 获取从开始到某个字符所在位置的子串 ${fn:substringBefore(zip, "-")}
toLowerCase 转为小写 ${fn.toLowerCase(product.name)}
toUpperCase 转为大写字符 ${fn.UpperCase(product.name)}
trim 去除字符串前后的空格 ${fn.trim(name)}



JSTL中自带的方法列表
面是JSTL中自带的方法列表以及其描述
contains
判断字符串是否包含另外一个字符串
<c:if test="${fn:contains(name, searchString)}">

containsIgnoreCase
判断字符串是否包含另外一个字符串(大小写无关)
<c:if test="${fn:containsIgnoreCase(name, searchString)}">

endsWith
判断字符串是否以另外字符串结束
<c:if test="${fn:endsWith(filename, ".txt")}">

escapeXml
把一些字符转成XML表示,例如<字符应该转为<
${fn:escapeXml(param:info)}

indexOf
子字符串在母字符串中出现的位置
${fn:indexOf(name, "-")}

join
将数组中的数据联合成一个新字符串,并使用指定字符格开
${fn:join(array, ";")}

length
获取字符串的长度,或者数组的大小
${fn:length(shoppingCart.products)}

replace
替换字符串中指定的字符
${fn:replace(text, "-", "?")}

split
把字符串按照指定字符切分
${fn:split(customerNames, ";")}

startsWith
判断字符串是否以某个子串开始
<c:if test="${fn:startsWith(product.id, "100-")}">

substring
获取子串
${fn:substring(zip, 6, -1)}

substringAfter
获取从某个字符所在位置开始的子串
${fn:substringAfter(zip, "-")}

substringBefore
获取从开始到某个字符所在位置的子串
${fn:substringBefore(zip, "-")}

toLowerCase
转为小写
${fn.toLowerCase(product.name)}

toUpperCase
转为大写字符
${fn.UpperCase(product.name)}

trim
去除字符串前后的空格
${fn.trim(name)}

 

 

今天将JSP的项目从Tomcat 5.5.12移植到Jboss AS去,偶然发现了一个奇怪的问题。"org.apache.jasper.JasperException: This absolute uri (http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application "

    由于JSTL1.0和JSTL1.1的声明语句不一样。

JSTL 1.0 的声明是:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

JSTL1.1 的声明是:
<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>

如果你使用的JSTL库和你在JSP中的声明不一致。就会报上面提到的Exception。

另外,要注意的是:Tomcat是先引用"TOMCAT_HOME/shared/lib"下面的库,再引用web项目下面的"WEB-INF/lib'的库。

还有就是,jBuilder自带库中的JSTL有两个配置,一个是"JSTL"(1.0),一个是"JSTL1.1"(1.1),注意在做项目的时候别引用错了。

还有一个技巧是:如何判断JSTL的两个库文件(standar.jar和jstl.jar)的版本?展开jar文件在"META-INF"目录下的MANIFEST.MF文件,其中"Specification-Version"指名的就是版本号。

分享到:
评论

相关推荐

    JSTL 字符串处理函数

    NULL 博文链接:https://showlike.iteye.com/blog/707047

    jstl 字符串处理函数

    最近用jstl1.0 的时候经常要在页面上对字符串做改动,在网上找了一个写的不错的,借鉴一下

    JSTL_fn标签 字符处理标签

    jstl 字符串处理函数 fn:length、fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:...

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    JSP中JSTL提供的函数标签EL表达式操作字符串的方法

    EL表达式截取字符串的函数说明

    引入标签库 &lt;&#37;@tablib uri=...fn:contains 判断字符串是否包含另外一个字符串 ${fn:contains(name,&gt; fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) &lt;c:if test=${

    自定义EL函数解决JSTL标签不足之处——按字节长度截取字符串

    做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...

    jstl_fn标签库

    所有jstl_fn标签库,函数标签库中的常用函数,在string字符串中是否包含substring字符串;在string中是否包含substring,忽略其大小写;字符串string是否以字符串prefixstring开头;在string中是substring第一次出现的...

    JSTL详细标签库介绍

    异常处理程序:能够让系统在出现异常的情况下恢复过来的程序使用异常处理情况:异常诊断与异常处理不在同一个位置下时使用异常处理程序(若用户一直通过键盘与程序通话,那么就不能使用处理键盘输入处理)使用异常的...

    EL表达式函数

    JSTL 使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我...

    如何使用jstl将在一个页面上显示多个复选框默认的勾选状态?

    第二步:调用fn:contains(arg1,arg2)函数 ,前面一个参数agr1是从数据库中取出的爱好的字符串(即原字符串)。后面一个是被包含的字符串,如果原字符串包含后面的字符串,那么这个复选框对应的状态就会被勾选上 ...

    JSTL高级用法

    ${pageContext.request.queryString} 取得请求的参数字符串${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串 ${pageContext.request.contextPath} 服务的web application 的名称 ${...

    鼠标悬停层

    该用例是用jquery设置层的,table表列数据太长,一列显示太长会将样式撑乱,特将显示的数据做处理,可以后台字符串截取,也可以引入页面函数&lt;%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%&gt;...

    freemarker总结

    下面是常用的内建的字符串函数: html:对字符串进行HTML编码 cap_first:使字符串第一个字母大写 lower_case:将字符串转换成小写 upper_case:将字符串转换成大写 trim:去掉字符串前后的空白字符 下面是集合的...

    java从入门到精通70个PPT

    6.字符串 7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html简介与js的基本语法 12 javascript内置对象和内置函数 13 javascript的DOM编程 14-15项目案例:当当网上书店或者做一个计算器 16 Ajax ...

    分页导航自动生成1

    //通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = new ...

    分页导航自动生成

    //通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = ...

    EL表达式 (详解)

    ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope...

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

Global site tag (gtag.js) - Google Analytics