【问题标题】:JSF2.0 tags not found未找到 JSF2.0 标记
【发布时间】:2011-03-18 20:20:08
【问题描述】:

最近我一直在玩 JSF2.0+Richface 3.3.3,我使用 STS 作为我的 IDE 和 Maven 来构建我的项目,但不知何故我无法让以下 JSF2.0 标记工作:

  • h:按钮
  • h:链接
  • f:元数据
  • f:viewParam(这是我的 STS 自动完成功能唯一识别的)

它只是在运行时失败,说它找不到 X 组件。

我确实有 jsf-api-2.0.2、jsf-impl-2.0.2、richfaces-api-3.3.3.final、richfaces-impl-jsf2-3.3.3.final、richfaces-ui-3.3。 3.final, jsf-facelets-1.1.15, jstl-1.0 显然是 "xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun. com/jsf/html" 在每个 .xhtml 文件中,我是否遗漏了什么?

这是我得到的确切错误:

<h:button> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: button

@EDIT:好吧,没关系,我的队友发现这是因为我们使用了一些外部 facelets,我们必须等待 RichFaces4.0...

【问题讨论】:

    标签: java jsf jsf-2


    【解决方案1】:

    您能否确认您的 maven pom.xml 文件具有以下依赖项:

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.0.2</version>
        </dependency>
    

    在您的项目目录上完成mvn clean install 后,在target 目录中搜索jsf jar 文件并确保在那里找到2.0 jar。

    如果问题仍未解决,请说明您正在使用的 Web 容器以及您的战争如何部署到服务器中。

    【讨论】:

      【解决方案2】:

      您是否删除了旧的 jsf 1.2 库? 检查您的 WEB-INF/lib 以查看没有 JSF 1.2 库的痕迹。

      还请记住,您应该将 faces-config 文件更新为 2.0

      <faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xi="http://www.w3.org/2001/XInclude"
       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">
      

      启动 servlet 时是否说明了什么:INFO: Initializing Mojarra 2.0.2 (FCS b10) for context '/nameofyourapplication'(如果您使用的是 JSF 的 Sun 实现)

      【讨论】:

      • 以防万一我仔细检查并且我没有 JSF1.2 库,并且 faces-config 也很好而且花花公子。哦,在初始化 Mojarra 时它什么也没说(当然除了它正在初始化)。有点奇怪,因为我在 google 中找不到有关此错误的任何信息。
      • 尝试清理项目,也许你在某处缓存了库。
      • 尝试将 .war 部署到 Tomcat 等 servlet 容器中,看看是否仍然出现同样的错误。
      • 你在使用 Mojarra 实现吗?还是 Apache MyFaces?可以打开.jar看看里面是否实现了标签。
      • @Zenzen:您一定在服务器日志中看到了Initializing Mojarra 条目。你看对地方了吗?您使用的是哪个服务器?
      猜你喜欢
      • 2011-07-22
      • 2013-09-29
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多