gpt4 book ai didi

java - Eclipse 找不到 JSF 2.2 标签库

转载 作者:行者123 更新时间:2023-11-30 07:57:53 28 4
gpt4 key购买 nike

我正在使用 JSF 2.2 标签库,但 Eclipse 显示以下警告消息:

Can't find facelet tag library for uri http://xmlns.jcp.org/jsf

让我感到困扰的是,我以前遇到过这个问题,它与类路径 JAR 相关,但现在它只影响 JSF 2.2 标记库。

Taglib xmlns:h="http://xmlns.jcp.org/jsf/html" 工作正常,警告显示为 JSF 2.2 细节,如 "/jsf"“/jsf/passthrough”。这是一张显示 JSF 2.2 警告的图像。标记库,但之前的 namespace 已正确加载。

Warnings for JSF 2.2 tag libs

我已尝试在 this 等帖子的帮助下解决问题但是没有一个程序(清理、重新启动、关闭/打开、验证等)对我有用。

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>

eclipse 信息:

Version: Neon.1a Release (4.6.1)Build id: 20161007-1200

更新

查看 taglib 文件后,我发现没有“passthrough”或“friendly markup”引用。所以 Eclipse 找不到它也就不足为奇了......

对于 Glassfish 和 JBoss 实现,com.sun.faces.metadata.taglib 下没有文件用于 Friendly Markup 和 Passthrough。

enter image description here

现在的问题是这些文件应该放在哪里?

最佳答案

更新:打开问题 WFLY-9579

Glassfish 和 JBoss 项目的实现 JAR 文件中似乎都缺少 taglib 文件。我希望自己是错的,但我找不到其他解释。

enter image description here

我已经发布了一个话题,以便可以调查此行为。

https://developer.jboss.org/thread/274046

解决方法

要阻止 IDE 发出警告,只需创建空的 taglibs 文件并关联到 web.xml。文件应位于 /WEB-INF/ 下并具有适当的扩展名 taglib.xml

JSF 实现将正常运行并且应该正确处理 facelets。

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>

passthrough.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>

web.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>

这是它的样子。现在警告消失了(我的强制症又平静了)。如果我有空闲时间,我想尝试为它制作 JAR 依赖项。

enter image description here

关于java - Eclipse 找不到 JSF 2.2 标签库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40865120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com