7

我使用 PrimeFaces 3.5.x 和 Mojarra JSF 2.1.x 我想以编程方式访问和显示这两个库的版本。

我将这些版本用作 maven2 属性,但我希望有一种更简单的方法来获取这些版本。我希望能找到类似的东西:

Primeface.getVersion();
FacesContext.getCurrentInstance();

基于 JavaScript 的解决方案也可以,因为我只想在状态页面上显示版本。

4

4 回答 4

17

在 PrimeFaces 4.0 中,移除了 Constants.VERSION 以支持;

RequestContext.getCurrentInstance().getApplicationContext().getConfig().getBuildVersion();

另请注意FacesContext.class.getPackage().getImplementationVersion();,它不适用于某些应用程序服务器,例如 websphere。

于 2013-08-21T17:34:47.777 回答
10

对于JSF

//returns the major version (2.1)
FacesContext.class.getPackage().getImplementationVersion();

//returns the specification version (2.1)
Package.getPackage("com.sun.faces").getSpecificationVersion();

//returns the minor implementation version (2.1.x)
Package.getPackage("com.sun.faces").getImplementationVersion();

对于 Primefaces 3.x,您可以使用Constantsutils 包中的类:

import org.primefaces.util.Constants;

Constants.VERSION
于 2013-08-21T11:29:01.217 回答
4

对于 PrimeFaces,您可以使用Constants类:

org.primefaces.util.Constants.VERSION
于 2013-08-21T11:26:53.503 回答
4

如果您需要在运行时获取版本,则不会有任何 RequestContext 实例。因此,您可以使用包的 ImplementationVersion:

Package.getPackage("org.primefaces").getImplementationVersion()

如果无法解析包,可以尝试通过 PrimeFaces 类解析版本:

PrimeFaces.class.getPackage().getImplementationVersion()
于 2018-06-21T07:55:47.147 回答