编写自定义 jstl 函数 - 找不到文件错误
writing custom jstl function - file not found error
我想编写自己的自定义 JSTL 库:
我创建了一个带有静态函数的class
public class Utils {
public static String getAll(String test) {
return "";
}
}
在我的 web.xml 文件中,我在 jsp-config:
下添加了
<taglib>
<taglib-uri>
http://schema.test.com/xmlns
</taglib-uri>
<taglib-location>
/WEB-INF/tags/utils.tld
</taglib-location>
</taglib>
我在 WEB-INF/tags 中创建了一个文件夹
在那里我创建了一个 utils.tld 文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>url-construction</short-name>
<uri>http://schema.test.com/xmlns</uri>
<function>
<name>UtilFunctions</name>
<function-class>com.test.website.jstl.utils</function-class>
<function-signature>java.lang.String getAll(java.lang.String)</function-signature>
</function>
</taglib>
在我的 JSP:
<%@ taglib uri="/WEB-INF/tags/utils" prefix="cg" %>
<c:set var="displayName" value="${cg:getAll("xyz")}"/>
我得到一个 error:org.apache.jasper.JasperException:找不到文件 "/WEB-INF/tags/utils"
tld 文件中的以下问题可能是原因。
<function-class>com.test.website.jstl.utils</function-class>
但是你的 class 是
public class Utils {
public static String getAll(String test) {
return "";
}
}
Java 是区分大小写的语言。您应该按原样传递 class 的完整限定名称。
我想编写自己的自定义 JSTL 库:
我创建了一个带有静态函数的class
public class Utils {
public static String getAll(String test) {
return "";
}
}
在我的 web.xml 文件中,我在 jsp-config:
下添加了<taglib>
<taglib-uri>
http://schema.test.com/xmlns
</taglib-uri>
<taglib-location>
/WEB-INF/tags/utils.tld
</taglib-location>
</taglib>
我在 WEB-INF/tags 中创建了一个文件夹 在那里我创建了一个 utils.tld 文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>url-construction</short-name>
<uri>http://schema.test.com/xmlns</uri>
<function>
<name>UtilFunctions</name>
<function-class>com.test.website.jstl.utils</function-class>
<function-signature>java.lang.String getAll(java.lang.String)</function-signature>
</function>
</taglib>
在我的 JSP:
<%@ taglib uri="/WEB-INF/tags/utils" prefix="cg" %>
<c:set var="displayName" value="${cg:getAll("xyz")}"/>
我得到一个 error:org.apache.jasper.JasperException:找不到文件 "/WEB-INF/tags/utils"
tld 文件中的以下问题可能是原因。
<function-class>com.test.website.jstl.utils</function-class>
但是你的 class 是
public class Utils {
public static String getAll(String test) {
return "";
}
}
Java 是区分大小写的语言。您应该按原样传递 class 的完整限定名称。