项目

一般

简介

应用部署时,出现jsp编译错误,找不到函数'isEmpty()'所映射的方法?

由 何 善才 在 超过 3 年 之前添加

错误信息:

原因分析:

加载的那些tld文件里面有定义这个方法,应用类里面又找不到这个定义的方法

查看jsp编译后的class文件,isEmpty()方法。

查看tid文件 Myfunctions.tid文件,找到定义的方法:

<function>
        <name>isNull</name>
        <function-class>com.bamboocloud.fw.jstl.taglibs.MyFunctions</function-class>
        <function-signature>boolean isNull(java.lang.Object)</function-signature>
        <example>${mfn:isNull(object)}</example>
    </function>

    <function>
        <name>isEmpty</name>
        <function-class>com.bamboocloud.fw.jstl.taglibs.MyFunctions</function-class>
        <function-signature>boolean isEmpty(java.lang.String)</function-signature>
        <example>${mfn:isEmpty(string)}</example>
    </function>

    <function>
        <name>toJson</name>
        <function-class>com.bamboocloud.fw.jstl.taglibs.MyFunctions</function-class>
        <function-signature>java.lang.String toJson(java.lang.Object)</function-signature>
        <example>${mfn:toJson(object)}</example>
    </function>

对比可见,jar中定义的isEmpty()方法和tid定义的isEmpty()方法不一致,导致jsp编译错误。

解决方案:

jar中方法和tid方法保持一直(参数、返回值等)

tid文件中的方法:

java代码中的方法:

修改tid文件中的方法: