如何在同一个应用程序中使用Mojarra和PrimeFaces

时间:2012-03-01 02:56:05

标签: jsf primefaces mojarra

我正在创建一个JSF应用程序,我在其中使用Mojarra 2.1.3(javax.faces.jar)作为实现jar。我想在从数据库中检索数据时显示具有分页支持的DataTable。我被建议使用Primefaces和Mojarra。我的问题是如何以及在何处将Mojarra和Primefaces jar放在我的JSF应用程序中以及我需要做什么相关配置。另外如何在同一个应用程序中调用Mojarra和Primefaces特定标签,我的意思是如何在我的Facelets页面中进行隔离。

1 个答案:

答案 0 :(得分:3)

现代Java应用程序服务器通常捆绑Mojarra。您无需手动将其添加到项目中。

如果使用像Netbeans或Eclipse这样的IDE,只需为IDE配置服务器,请创建一个新的Java Web或Java EE项目,并自动将所有必需的库添加到项目中。我建议您浏览一个快速入门教程for NetbeansEclipse

如果您需要使用特定的Mojarra版本,请检查您的应用程序服务器的文档,并在必要时替换服务器的JSF jar文件(jsf-impl.jar和jsf-api.jar)。

Primefaces未与应用程序服务器捆绑在一起。您必须手动将其添加到项目中。一个很好的起点是Primefaces documentation。保持简短:将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"

然后您可以使用前缀为hf的JSF代码和前缀为p的Primefaces代码:

<h:inputText .../>
<p:calendar .../>