我知道这个问题被问过很多次,因为我搜索了几个小时的解决方案,但它从未被回答过(或者至少不是我的情况).
我正在使用Wildfly 8.0(来自JBoss),所以我知道我不需要添加jstl jar或JSF jar,因为JBoss已经提供了实现.
现在即使告诉eclipse使用Wildfly运行时库,我也会收到上述错误.我查了一下,jboss-jstl-api_1.2_spec-1.0.4.Final.jar是图书馆的一部分
我怎么能通过这个?我尝试下载jstl jars(来自https://jstl.java.net/)并将它们放在lib目录中,但它无法正常工作.
当我使用没有jstl实现的Tomcat时,将jar复制到"lib"非常有效.但不是Wildfly(也许是因为eclipse忽略了我放在lib目录中的罐子,因为Wildfly有自己的罐子?但是为什么我首先得到错误?我很困惑).
感谢任何可以帮助我的人.
编辑:我忘了准确,即使在我的所有JSP上都存在这些错误,该项目也会在服务器上构建并完美运行.这些错误是特定于eclipse的,当使用这些(未知的eclipse)标记时,它无法识别taglib并在taglib声明和警告中显示恼人的错误消息.另外,我无法使用代码完成.
编辑:我暂时通过在构建路径中添加独立的myfaces和jstl库来绕过问题.我想虽然eclipse使用服务器端可用的jar.(对于JPA,例如我不需要将hibernate库添加到构建路径,我只是告诉eclipse,JPA实现可以在服务器运行时使用,并且它在代码完成和所有方面都运行良好).
在哪里可以找到 XML 模式定义
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jstl/core"
Run Code Online (Sandbox Code Playgroud)
或自 JSF 2.2
xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
Run Code Online (Sandbox Code Playgroud)
?
我正在使用 JSF 2.2 taglibs,但 Eclipse 显示以下警告消息:
找不到 uri http://xmlns.jcp.org/jsf 的facelet 标记库
问题是我以前遇到过这个问题,它与类路径 JAR 相关,但现在它只影响 JSF 2.2 标记库。
Taglibxmlns:h="http://xmlns.jcp.org/jsf/html"
工作正常,警告显示给 JSF 2.2 细节,如"/jsf"
和"/jsf/passthrough"
。这是显示 JSF 2.2 警告的图像。标记库,但先前的命名空间已正确加载。
我曾尝试与像帖子的帮助来解决这个问题本,但没有手续(干净,重启,关闭/打开,验证,等等)都为我工作。
JSF 的依赖项(源自 WildFly 10.1 pom.xml):
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.13</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.13.SP1</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
日蚀信息:
版本:Neon.1a 发布 (4.6.1) 版本号:20161007-1200
在查看 taglib 文件后,我发现没有“直通”或“友好标记”参考。因此,Eclipse 找不到它也就不足为奇了……
com.sun.faces.metadata.taglib
对于 Glassfish 和 JBoss 实现,在友好标记和传递下没有文件。
现在的问题是这些文件应该在哪里?