函数名 函数说明 使用举例
fn:contains 判断字符串是否包含另外一个字符串
<c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关)
<c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith 判断字符串是否以另外字符串结束
<c:if test="${fn:endsWith(filename, ".txt")}">
fn:escapeXml 把一些字符转成XML表示,例如<字符应该转为<
${fn:escapeXml(param:info)}
fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")}
fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")}
fn:length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)}
fn:replace 替换字符串中指定的字符${fn:replace(text, "-", "•")}
将\r\n替换成<br/>
<div style="text-align: left;">
<%
request.setAttribute("vEnter", "\r\n");
//奇怪的是这一行我用 <c:set var="vEnter" value="\n" scope="request"/>
//都没用,估计是set标签里对value值处理了一下,没jstl的源码,不清楚JSTL是怎么处理的.
%>
${fn:replace(item.de, vEnter, "<br/>")}
</div>
fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")}
原始结果:
[/imgs/201506151753507135579ea6d60f74b9ec91586340.jpeg, /imgs/201506151753507505579ea6d60f74b9ec91586341.jpeg]
目标结果:
/imgs/201506151753507135579ea6d60f74b9ec91586340.jpeg /imgs/201506151753507505579ea6d60f74b9ec91586341.jpeg
<c:forEach var="i" begin="0" end="${fn:length(item.imgs) }">
${item.imgs[i]}
</c:forEach>
原始结果:http://video.baidu.com/SHANGHAIFW1.mp4
目标结果:SHANGHAIFW1.mp4
<a href="${item.img }" target="_blank">
<c:forEach var="v" items='${fn:split(item.img,"/") }' varStatus="index">
<c:if test='${index.index+1 == fn:length(fn:split(item.img,"/"))}'>
${v }
</c:if>
</c:forEach>
</a>
fn:startsWith 判断字符串是否以某个子串开始
<c:if test="${fn:startsWith(product.id, "100-")}">
fn:substring 获取子串 ${fn:substring(zip, 6, -1)}
${fn:substringAfter(zip, "-")}
fn:substringBefore 获取从开始到某个字符所在位置的子串${fn:substringBefore(zip, "-")}
fn:toLowerCase 转为小写 ${fn.toLowerCase(product.name)}
fn:toUpperCase 转为大写字符${fn.UpperCase(product.name)}
fmt:formatNumber 格式化数字:
<fmt:setLocale value="zh_CN"/>
数字格式:<fmt:formatNumber value="12345.12345"/><br>
百分数:<fmt:formatNumber value="12345.12345" type="percent"/><br>
货币格式:<fmt:formatNumber value="12345.12345" type="currency"/>
<fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00
<fmt:formatNumber value="12" type="currency" pattern="$.0#"/> -- $12.0
<fmt:formatNumber value="1234567890" type="currency"/> -- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> -- 123,456.79
<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> -- 123,456.7
<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70
<fmt:formatNumber value="12" type="percent" /> -- 1,200% (type 可以是currency、 number、 和percent)
数字格式:12,345.123
百分数:1,234,512%
货币格式:¥12,345.12
如果对数字格式想保留两位小数:
<fmt:formatNumber type="number" value="1" pattern="0.00" maxFractionDigits="2"/>
输出:1.00
${fn:substring(item.transTime, 0, 19)}
输出:"2017-01-20 18:10:48.0" -> "2017-01-20 18:10:48"