我使用 PrimeFaces 3.5.x 和 Mojarra JSF 2.1.x 我想以编程方式访问和显示这两个库的版本。
我将这些版本用作 maven2 属性,但我希望有一种更简单的方法来获取这些版本。我希望能找到类似的东西:
Primeface.getVersion();
FacesContext.getCurrentInstance();
基于 JavaScript 的解决方案也可以,因为我只想在状态页面上显示版本。
我使用 PrimeFaces 3.5.x 和 Mojarra JSF 2.1.x 我想以编程方式访问和显示这两个库的版本。
我将这些版本用作 maven2 属性,但我希望有一种更简单的方法来获取这些版本。我希望能找到类似的东西:
Primeface.getVersion();
FacesContext.getCurrentInstance();
基于 JavaScript 的解决方案也可以,因为我只想在状态页面上显示版本。
在 PrimeFaces 4.0 中,移除了 Constants.VERSION 以支持;
RequestContext.getCurrentInstance().getApplicationContext().getConfig().getBuildVersion();
另请注意FacesContext.class.getPackage().getImplementationVersion();
,它不适用于某些应用程序服务器,例如 websphere。
对于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,您可以使用Constants
utils 包中的类:
import org.primefaces.util.Constants;
Constants.VERSION
对于 PrimeFaces,您可以使用Constants类:
org.primefaces.util.Constants.VERSION
如果您需要在运行时获取版本,则不会有任何 RequestContext 实例。因此,您可以使用包的 ImplementationVersion:
Package.getPackage("org.primefaces").getImplementationVersion()
如果无法解析包,可以尝试通过 PrimeFaces 类解析版本:
PrimeFaces.class.getPackage().getImplementationVersion()