<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var="some" value="abcdef"/>
${fn:endsWith(some, 'ef')}
返回true
<c:set var="some" value="abcdefef"/>
${fn:endsWith(some, 'ef')}
返回false
看起来函数endsWith
从开始而不是从结尾检查字符串。
如果来自第二个参数的字符串在第一个参数中不仅在其末尾出现,那么该函数返回false。
答案 0 :(得分:3)
是的,他们是jstl中的错误
public static boolean endsWith(String input, String substring)
{
if (input == null)
input = "";
if (substring == null)
substring = "";
int index = input.indexOf(substring);
if (index == -1)
return false;
if (index == 0 && substring.length() == 0)
return true;
return (index == input.length() - substring.length());
}
它使用indexof而不是StringW /的finallyWith
答案 1 :(得分:0)
尝试使用Apache版本http://tomcat.apache.org/taglibs/standard/替换JSTL JAR文件。它为我解决了同样的问题。