jstl标签fn:substring使用技巧 和 JSTL中fn表达式的使用说明,jstlsubstring
jstl标签fn:substring使用技巧 和 JSTL中fn表达式的使用说明,jstlsubstring
需求:将字段名为usercode的手机号18680002001中间四位替换成﹡
按需求来说,替换后的结果是186****2001 ,笔者在公司开发用的是内网,无法第一时间用网络查询,
公司产品是用Struts2,struts2托管给Spring了,
当时写了${fn:substring(usercode,0,3)}****${fn:substring(usercode,7,正数)},想把中间4位替换掉, 无乱怎么写
都显示前3位的号码186,很是郁闷,于是联想起stl函数标签的源代码,把后面以为改成负数就解决问题。
代码:${fn:substring(usercode,0,3)}****${fn:substring(usercode,7,-1)}
说明:fn:substring(string,index,负数) 从索引处截取到字符串的末尾
jstl相关代码如下:
/**
* 返回参数input部分字符串, 从参数beginIndex开始到参数endIndex位置,包括end位置的字符
* @param input
* @param beginIndex 开始索引
* @param endIndex 结束索引
* @return 截取后的字符串
*/
public static String substring(String input, int beginIndex, int endIndex) {
if (input == null) input = "";
if (beginIndex >= input.length()) return "";
if (beginIndex < 0) beginIndex = 0;
if (endIndex < 0 || endIndex > input.length()) endIndex = input.length();
if (endIndex < beginIndex) return "";
return input.substring(beginIndex, endIndex);
}
JSTL中fn表达式的使用说明
简介 在jsp页面上经常遇到得到集合长度、字符长度、字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一。为此在2.0 中添加了functions标签,其提供对以上需求的支持。 使用方法 引用<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>函数说明:函数 | 描述 |
fn:contains(string, substring) | 如果参数string中包含参数substring,返回true |
fn:containsIgnoreCase(string, substring) | 如果参数string中包含参数substring(忽略大小写),返回true |
fn:endsWith(string, suffix) | 如果参数 string 以参数suffix结尾,返回true |
fn:escapeXml(string) | 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回 |
fn:indexOf(string, substring) | 返回参数substring在参数string中第一次出现的位置 |
fn:join(array, separator) | 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。 |
fn:length(item) | 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。 |
fn:replace(string, before, after) | 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果 |
fn:split(string, separator) | 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素 |
fn:startsWith(string, prefix) | 如果参数string以参数prefix开头,返回true |
fn:substring(string, begin, end) | 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符 |
fn:substringAfter(string, substring) | 返回参数substring在参数string中后面的那一部分字符串 |
fn:substringBefore(string, substring) | 返回参数substring在参数string中前面的那一部分字符串 |
fn:toLowerCase(string) | 将参数string所有的字符变为小写,并将其返回 |
fn:toUpperCase(string) | 将参数string所有的字符变为大写,并将其返回 |
fn:trim(string) | 去除参数string 首尾的空格,并将其返回 |
${fn.substring(string,begin,end)}
来一个我自己测试用的代码
<%@ page contentType="text/html;charset=gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html>
<head>
<title>这个是 JSTL的 测试</title>
</head>
<body>
<c:set var="str" value="stringStRiNg"/>
<c:set var="t" value="tr"/>
<c:out value="${str} = ${fn:length(str)}"/>
<c:out value="${fn:toLowerCase(str)}"/>
<c:out value="${fn:toUpperCase(' ')}"/>
<c:out value="${fn:toUpperCase('AbCdEfg')}"/><br>
<c:out value="${fn:substring('asdfefg',0,3)}"/><br>
<c:out value="${fn:substringAfter('asdf','s')}"/><Br>
<c:out value="${fn:substringBefore(str,'g')}"/><Br>
<c:out value="${fn:trim(' sd dew e ')}"/><Br>
<c:out value=" d sd dew e "/><Br>
<c:out value="${fn:replace(str,'ing','IN')}"/><Br>
</body>
</html>
相关文章
- 暂无相关文章
用户点评