实现截取字符串
如:
<td>成交量:
<%--先对数字进行四舍五入这里JSTL采用的是4舍6入5奇偶所以要加一个很小的数字才能达到四舍五入的目的 --%>
<fmt:formatNumber value="${sinfo.volume+ 0.0001}" type="number" groupingUsed="false" var="volume"/>
<%--获取四舍五入后的长度 ,并定义变量【len】--%>
<c:set var="volumeLength" value="${fn:length(volume)}" />
<c:choose>
<%--判断长度是否大于4因为单位是万 --%>
<c:when test="${volumeLength > 4}">
<%--截取字符串长度从0开始到长度-4 说明:由于四舍五入时格式化之后是1234,567,890这样的格式所以需要【-4】本来是【-3】--%>
<c:out value="${fn:substring(volume,0,volumeLength-4)}" />
</c:when>
<c:otherwise>
<c:out value="${volume}" />
</c:otherwise>
</c:choose>万手
</td>
JSTL截取字符串长度
JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下
${ns:methodName(args....)}
在使用这些函数之前必须在JSP中引入标准函数的声明
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
下面是JSTL中自带的方法列表以及其描述
函数名
函数说明
使用举例
<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)}