我正在运行 Eclipse 2023-09 (4.29.0)、Java 17 (Amazon Corretto 17.0.8_8),并注意到在 xhtml 页面上使用 Java 11 时可用的内容辅助似乎不再起作用。
我们已将 Web 应用程序从 JSF 2 升级到 JSF 4:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.faces</artifactId>
<version>4.0.1</version>
</dependency>
我们还使用 primefaces 版本 12:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>12.0.0</version>
<classifier>jakarta</classifier>
</dependency>
我们已将 xhtml 页面中的命名空间从 URL 更新为 URN,如下所示:
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="jakarta.faces.facelets"
xmlns:h="jakarta.faces.html"
xmlns:f="jakarta.faces.core"
xmlns:p="http://primefaces.org/ui">
我已经在 Eclipse/Preferences/Web/Html Files/Editor/Content Assist 下仔细检查了所有内容。
我在 Eclipse 中的项目被标记为 Maven 项目,我可以看到 Maven 依赖项目录列出了所有 jar,包括 jakarta.faces 和 primefaces jar,因此 taglib 应该位于类路径上并且 Eclipse 可见,但仍然没有内容辅助。
我猜这与我们从 Java 11 升级到 Java 17 时 javax -> jakarta 的更改有关,也许这是 Eclipse 中的一个错误?或者标签库存储在 jar 文件中的不同位置/位置并且 Eclipse 无法正确看到它们?
如果有人有任何想法(或者这是一个已知的错误),我将非常感谢任何反馈。感谢您的宝贵时间。
我遇到了同样的问题,我相信这与从 javax 更改为 jakarta 有关,当我使用 jakarta 时,IDE 中会出现一些错误,即使没有错误。我安装了多个版本的 Eclipse,但在使用自动完成时没有成功。