2017-10-24 2 views
0

Ich möchte meine eigene benutzerdefinierte JSTL-Bibliothek schreiben:Schreiben von benutzerdefinierten jstl Funktion - Datei nicht gefunden Fehler

ich eine Klasse mit einer statischen Funktion erstellt

public class Utils { 
    public static String getAll(String test) { 
     return ""; 
    } 
} 

In meiner web.xml-Datei unter ich hinzugefügt jsp-config:

<taglib> 
<taglib-uri> 
    http://schema.test.com/xmlns 
</taglib-uri> 
<taglib-location> 
    /WEB-INF/tags/utils.tld 
</taglib-location> 
</taglib> 

habe ich einen Ordner in WEB-INF/tags in, dass ich eine utils.tld Datei erstellt:

<?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> 

In meiner JSP:

<%@ taglib uri="/WEB-INF/tags/utils" prefix="cg" %> 

<c:set var="displayName" value="${cg:getAll("xyz")}"/> 

Ich erhalte eine Fehlermeldung: org.apache.jasper.JasperException: Datei "/WEB-INF/tags/utils" nicht

gefunden

Antwort

1

folgendes Problem in der TLD-Datei könnte der Grund sein.

<function-class>com.test.website.jstl.utils</function-class> 

Aber Ihre Klasse ist

public class Utils { 
    public static String getAll(String test) { 
     return ""; 
    } 
} 

Java ist Groß- und Kleinschreibung Sprache. Sie sollten den voll qualifizierten Namen Ihrer Klasse so weitergeben, wie er ist.

Verwandte Themen