如何修复eclipse 4.3中的“无法找到标记库描述符”的自定义EL函数

时间:2013-07-31 06:56:33

标签: eclipse jsp jsp-tags taglib

设置:

eclipse 4.3与tomcat7(在localhost端口8080上运行)配置为我的测试服务器。

我的EL课程文件夹结构: http://i.imgur.com/ogOsCZM.jpg)使用New =>创建eclipse中的Java项目

package org.flinders.mycustomutilities;

//import java.lang.StringBuilder;

public class MyCustomUtilities {
    public static String Hello(String name) {
        return "Heya " + name;
    }

 }

然后将该类导出到JAR文件中并导入到我的maven存储库中。 然后使用pom.xml中的此条目将其导入我的spring mvc项目

<dependency>
    <groupId>org.flinders.mycustomutilities</groupId>
    <artifactId>MyCustomUtilities</artifactId>
    <version>0.0.1</version>
</dependency>

我在Eclipse的Maven POM编辑器中没有收到任何错误。

我的TLD文件(存储在D:\ work \ eclipse \ java.metadata.plugins \ org.eclipse.wst.server.core \ tmp1 \ wtpwebapps \ ROOT \ WEB-INF中成为tomcat的工作文件夹

<?xml version="1.0" encoding="UTF-8" ?>
<taglib
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>mytaglib</short-name>
    <uri>org.flinders.mycustomutilities</uri>

    <function>
        <name>Hello</name>
        <function-class>org.flinders.mycustomutilities.MyCustomUtilities</function-class>
        <function-signature>java.util.String Hello(java.util.String)</function-signature>
    </function>
</taglib>

不确定要在我的设置的URI标记中添加什么。

这就是我在JSP文件中导入自定义EL函数的方法

<%@ taglib uri="WEB-INF/mytaglib.tld" prefix="mine" %>

我也试过

<%@ taglib uri="/WEB-INF/mytaglib.tld" prefix="mine" %>

但是eclipse看不到它。我已经通过eclipse启动了tomcat,以防万一需要没有任何积极的结果。仍然得到上面提到的错误。

有什么想法吗?我一直在网上搜索示例,但他们并没有提供完整/可行的示例。

谢谢!

1 个答案:

答案 0 :(得分:0)

我的问题是我将tld文件放在错误的位置。我将类/ jar导入到我的spring web mvc项目中。但我把TLD文件放在“ROOT”WEB-INF中。我应该把它放在我的web项目的WEB-INF中。现在所有工作都归功于所有看过它的人。