我正在使用 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 实现,在友好标记和传递下没有文件。
现在的问题是这些文件应该在哪里?
更新:打开的问题WFLY-9579
对于 Glassfish 和 JBoss 项目,实现 JAR 中似乎缺少 taglib 文件。我希望是错的,但我找不到其他解释。
我已经发布了一个线程,因此可以调查此行为。
https://developer.jboss.org/thread/274046
要阻止 IDE 发出警告,只需创建空的 taglibs 文件并将其关联到web.xml
. 文件应该放在下面/WEB-INF/
并具有适当的扩展名taglib.xml
。
JSF 实现将正常运行并且应该正确处理小面。
Friendly_markup.taglib.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<facelet-taglib xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibrary_2_2.xsd"
version="2.2">
<namespace>http://xmlns.jcp.org/jsf</namespace>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)
传递.taglib.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<facelet-taglib xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facelettaglibrary_2_2.xsd"
version="2.2">
<namespace>http://xmlns.jcp.org/jsf/passthrough</namespace>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)
网页.xml
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/passthrough.taglib.xml;/WEB-INF/friendly_markup.taglib.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
这是它的样子。现在警告消失了(我的强迫症又恢复了平静)。如果我有空闲时间,我想尝试为它添加 JAR 依赖项。
归档时间: |
|
查看次数: |
6833 次 |
最近记录: |