【问题标题】:No tag "link" defined in tag library imported with prefix "h" | tomcat | eclipse以前缀“h”导入的标签库中没有定义标签“link” |雄猫 |蚀
【发布时间】:2011-03-13 05:38:30
【问题描述】:

我在 Netbeans IDE 中工作并切换到 Eclipse。

我在 Eclipse 中使用向导创建了一个简单的基于 JSF 2.0 的程序。完整的文件是这样的。

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<h1>Hi, This is my JSF 2. Applicaiton</h1>
<br />
Click <h:link outcome="UserLogin">here</h:link> to go to login
</f:view>
</body>
</html>

当我在 tomcat 7.0 服务器中部署此应用程序时,我收到以下错误消息,

org.apache.jasper.JasperException: /index.jsp(14,6) No tag "link" defined in tag library imported with prefix "h"

在我的 IDE 中,我也可以看到

帮助表示赞赏。

【问题讨论】:

    标签: eclipse tomcat jsf-2


    【解决方案1】:

    我也遇到了这个问题,我想找到一些解决方案,但我做不到。我发现你和我一样。

    如果您使用 facelets,那么您可以看到该标签,如果您使用普通的“JSF”,则会出现您提到的错误。

    您可以尝试此程序来解决您的问题。

    1. 尝试了解如何在您的 Web 应用程序上配置 facelets。例如,我的以*.xhtml 结尾的 webapp 文件由 facelets 引擎处理。 将文件重命名为*.xhtml

    2. 添加这个

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      

      <html
          xmlns="http://www.w3.org/1999/xhtml"
          xmlns:ui="http://java.sun.com/jsf/facelets">
      

      而不是普通的html。

    3. 删除任何指令

      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
      

    详细说明可以在这里找到:http://wiki.apache.org/myfaces/MigrateFromJspToFacelets

    那么你应该可以处理h:link

    【讨论】:

      【解决方案2】:

      &lt;h:link&gt; 在 JSF 2.0 中是新的,在 JSF 1.x 中不存在。因此,此错误可能有以下原因:

      1. 实际上,您的 /WEB-INF/lib 中有 JSF 1.x 库,而不是 JSF 2.0 库。

      2. 您的 faces-config.xml 被声明为 JSF 1.x 而不是 JSF 2.0。确保它被声明为符合 JSF 2.0 规范。

        <faces-config
            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-facesconfig_2_0.xsd"
            version="2.0">
        

      【讨论】:

        【解决方案3】:

        几个小问题:

        1. 您的 JSF 库位于何处?

        2. 我认为你的意思更多是:在我的 IDE我也可以看到哪个导致 进入。

        3. Eclipse 通常都不错 能够找到您的标签 图书馆。是不是在抱怨 在你的使用这些库 jsp 编辑器页面?

        请先让我们了解有关您的设置的更多信息。

        我将放弃显而易见的解决方案:您丢失了对 JSF jar(jsf-impl.jar) 的引用。将它包含在您的 Tomcat lib 文件夹中应该可以修复它。

        【讨论】:

          猜你喜欢
          • 2014-04-09
          • 2012-06-28
          • 2017-03-09
          • 2012-05-13
          • 2019-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多