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表示,例如<字符应该转为< ${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库和你在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"指名的就是版本号。
分享到:
相关推荐
NULL 博文链接:https://showlike.iteye.com/blog/707047
最近用jstl1.0 的时候经常要在页面上对字符串做改动,在网上找了一个写的不错的,借鉴一下
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表达式操作字符串的方法
引入标签库 <%@tablib uri=...fn:contains 判断字符串是否包含另外一个字符串 ${fn:contains(name,> fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test=${
做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...
所有jstl_fn标签库,函数标签库中的常用函数,在string字符串中是否包含substring字符串;在string中是否包含substring,忽略其大小写;字符串string是否以字符串prefixstring开头;在string中是substring第一次出现的...
异常处理程序:能够让系统在出现异常的情况下恢复过来的程序使用异常处理情况:异常诊断与异常处理不在同一个位置下时使用异常处理程序(若用户一直通过键盘与程序通话,那么就不能使用处理键盘输入处理)使用异常的...
JSTL 使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我...
第二步:调用fn:contains(arg1,arg2)函数 ,前面一个参数agr1是从数据库中取出的爱好的字符串(即原字符串)。后面一个是被包含的字符串,如果原字符串包含后面的字符串,那么这个复选框对应的状态就会被勾选上 ...
${pageContext.request.queryString} 取得请求的参数字符串${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串 ${pageContext.request.contextPath} 服务的web application 的名称 ${...
该用例是用jquery设置层的,table表列数据太长,一列显示太长会将样式撑乱,特将显示的数据做处理,可以后台字符串截取,也可以引入页面函数<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>...
下面是常用的内建的字符串函数: html:对字符串进行HTML编码 cap_first:使字符串第一个字母大写 lower_case:将字符串转换成小写 upper_case:将字符串转换成大写 trim:去掉字符串前后的空白字符 下面是集合的...
6.字符串 7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html简介与js的基本语法 12 javascript内置对象和内置函数 13 javascript的DOM编程 14-15项目案例:当当网上书店或者做一个计算器 16 Ajax ...
//通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = new ...
//通过调用不同的构造函数生成不同导航字符串 PageControl pageControl = new PageControl("PageTest", page, 30); //数字列表导航形式,首尾页时仍显示上一页,下一页(默认形式) PageControl pageControl2 = ...
${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope...
35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...