我正在创建一个 JSF 应用程序,其中我使用 Mojarra 2.1.3 (javax.faces.jar) 作为实现 jar。我想在从数据库中检索数据时显示一个支持分页的 DataTable。有人建议我将 Primefaces 与 Mojarra 一起使用。我的问题是如何以及在哪里将 Mojarra 和 Primefaces jar 放在我的 JSF 应用程序中,以及我需要做哪些相关配置。还有如何在同一个应用程序中调用 Mojarra 和 Primefaces 特定标签,我的意思是如何在我的 Facelets 页面中进行隔离。
1 回答
现代 Java 应用程序服务器通常与 Mojarra 捆绑在一起。您无需手动将其添加到您的项目中。
如果您使用像 Netbeans 或 Eclipse 这样的 IDE,只需为 IDE 配置服务器,创建一个新的 Java Web 或 Java EE 项目,所有必要的库都会自动添加到您的项目中。我建议浏览Netbeans或Eclipse的快速入门教程之一。
如果您需要使用特定的 Mojarra 版本,请检查应用程序服务器的文档并在必要时替换服务器的 JSF jar 文件(jsf-impl.jar 和 jsf-api.jar)。
Primefaces 不与应用程序服务器捆绑在一起。您必须手动将其添加到您的项目中。Primefaces 文档是一个很好的起点。太简短了:将 primefaces jar 文件放在 Web 项目的类路径中(通常是 WEB-INF/lib)。
您可以在 facelets 中并排使用 Primefaces 和 JSF 标签。您只需要添加正确的命名空间定义,例如
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
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:p="http://primefaces.org/ui">
...
</html>
(对于 3.0 之前的 Primefaces 版本,命名空间定义看起来有点不同xmlns:p="http://primefaces.prime.com.tr/ui"
:)
然后您可以使用带有前缀的 JSF 标记h
或带有前缀f
的 Primefaces 标记p
:
<h:inputText .../>
<p:calendar .../>