未找到 JSF2.0 标记
Posted
技术标签:
【中文标题】未找到 JSF2.0 标记【英文标题】:JSF2.0 tags not found 【发布时间】: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...
【问题讨论】:
【参考方案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
条目。你看对地方了吗?您使用的是哪个服务器?以上是关于未找到 JSF2.0 标记的主要内容,如果未能解决你的问题,请参考以下文章
未找到 EOF 标记 - 如何在 PyPDF 和 PyPDF2 中修复?
通过未标记为 cascade PERSIST 的关系找到了一个新对象
未找到 Content-Security-Policy 元标记错误