java - 新的 java primefaces 项目库为空
问题描述
在使用 primefaces 创建一个新的 java ee 项目时,我遇到了一个小问题。
当我到达框架页面时,库是空的。
我不明白为什么。
我给你两张照片给你看。
你有解决方案吗?
先感谢您
例如 :
解决方案
从您的屏幕截图中,您似乎使用的是最新版本的 NetBeans,以及您使用以下方法创建的项目:
文件 > 新建项目 > Java with Ant > Java Web > Web 应用程序
(以下说明假设一个 Tomcat Web 容器。如果您使用不同的东西,下面的一些点也可能不同 - 但要点应该是相同的。)
我的偏好是使用基于 Maven 的项目而不是基于 Ant 的项目:
文件 > 新建项目 > 带有 Maven 的 Java > Web 应用程序
与 Maven
创建项目时,您无需指定任何框架。要开始使用 PrimeFaces,请编辑pom.xml
作为项目一部分自动生成的文件 - 它位于Project Files
文件夹中。
在 POM 中,您将看到以下部分 - 您将看到我为 PrimeFaces 添加了一个新的依赖项子部分:
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>8.0</version>
</dependency>
</dependencies>
在 POM 中自动创建的javaee-web-api
依赖项负责处理 JSF 需求(Primefaces 需要)。
最后,运行 Build (F11),以确保将新添加的依赖项拉入您的项目。您将看到项目文件夹中primefaces-8.0.jar
列出的内容。Dependencies
现在您可以创建一个测试 XHTML 网页来验证 PrimeFaces 是否正常工作:
与蚂蚁
如果您仍然喜欢或需要使用基于 Ant 的方法,那么过程类似。在第 4 步,选择“JSF 2.3”的注册库(屏幕截图中显示的那个)并单击“完成”,而不是尝试选择 PrimeFaces 组件库。
现在,因为您没有使用 Maven,您将不得不手动下载 PrimeFaces JAR 文件(例如,从此页面上的 jar 链接),并以通常的基于 Ant 的项目的方式将其添加到您的项目中:
项目属性 > 库 > 添加 JAR/文件夹
(这是我更喜欢 Maven 的原因之一 - 库下载是自动为您服务的。)
更新- 基于评论
基于 Ant 的依赖管理
如果您需要/想要使用基于 Ant 的项目,那么为依赖管理设置类似 Maven 的支持是值得的。有不止一种方法可以做到这一点。使用常春藤是一种选择。
Tomcat 与应用服务器
在我的回答中,我最初的假设是使用 Tomcat。Tomcat 是 Web 容器的一个示例,它提供对 Java servlet 的支持——但它不是一个成熟的 Jakarta EE 应用程序服务器——因此它不包含所需的 JSF 库(因此需要提供它们,如此答案前面描述的步骤)。如果您正在使用诸如 Glassfish 或 TomEE(或许多其他)之类的应用服务器,那么 JSF 将已经提供。
JSF 版本
对于 Tomcat 等 Web 容器,NetBeans 可能没有您想要/需要使用的 JSF 版本。在这种情况下,作为一个单独的步骤,您可以下载所需的 JAR 文件(例如从 Maven 或从官方JSF 网站)。
在 NetBeans 中,转到 Tools > Libraries > New Library... 然后为您的库命名并提供所需的 JAR 文件。
该库现在将在“新项目”向导中可用:
然而,重申一下,您不需要使用 NetBeans 向导来选择您想要使用的 JSF 小部件框架(例如 PrimeFaces)。以通常的方式将其作为项目中的 JAR/库依赖项简单地提供会更容易。
推荐阅读
- rust - 反序列化绑定在泛型结构上的特征
- apache - Fail2ban 将所有 IP 显示为 127.0.0.1
- bigcommerce - 如何反映来自 Bigcommerce Checkout-JS 的订单确认文件的更改?
- hive - 多行记录单元格拆分为多条记录
- python - 在 Pandas 中整合数据
- end-to-end - Playwright 中的 page.reload([options]) 是什么?
- mysql - MySQL brew 无法在 macOS Monterey 上运行?
- python - 更新表记录失败:1064(42000):您的 SQL 语法有错误;Python
- directory - Babel "exclude" 不排除一个目录
- security - 通过 openssl 将私钥存储在内存中的机制是一种妥协的方式,对吧?