测试的时候遇到一个问题: <c:out value="${fn:endsWith('helle','e') }"></c:out> <c:out value="${fn:endsWith('hhlle','e') }"></c:out> 访问的时候显示 false true 。 为什么啊啊????

来源:4-1 JSTL函数之常用函数(Ⅰ)

梦影剑魂

2016-10-26 15:55

测试的时候遇到一个问题:
<c:out value="${fn:endsWith('helle','e') }"></c:out>
<c:out value="${fn:endsWith('hhlle','e') }"></c:out>
访问的时候显示 false true 。 为什么啊啊????

写回答 关注

1回答

  • pergod
    2016-10-28 11:07:44
    已采纳
    public static boolean endsWith(String input, String substring)
        {
            if (input == null)
                input = "";
            if (substring == null)
                substring = "";
            int index = input.indexOf(substring);//此处应该是lastIndexOf
            if (index == -1)
                return false;
            if (index == 0 && substring.length() == 0)
                return true;
            return (index == input.length() - substring.length());}

    以上是JSTL的endsWith的源码,可以看出存在一些bug

    http://stackoverflow.com/questions/16750540/jstl-bug-in-function-endswith

    梦影剑魂

    封装好的源码也有bug啊,谢谢啦

    2016-10-28 11:21:53

    共 1 条回复 >

JSP常用标签

配置及使用常用JSTL标签,这是一项必备的基本技能

46088 学习 · 80 问题

查看课程

相似问题