2013-08-21 74 views
6

我使用PrimeFaces 3.5.x和Mojarra JSF 2.1.x 我想以編程方式訪問和顯示兩個庫的版本。以編程方式訪問JSF和Primefaces版本號

我使用版本作爲maven2屬性,但我希望有一個更簡單的方法來獲取版本。 我希望能找到這樣的:

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

一個基於JavaScript的解決方案將被罰款過,因爲我只想顯示狀態頁上的版本。

回答

8

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 
+0

謝謝。對於JSF,您的解決方案僅返回「2.1」。爲了獲得次要版本,我發現這個:Package.getPackage(「com.sun.faces」)。getImplementationVersion()返回「2.1.25」。 – alfonx

+0

我更新了答案來指定。非常感謝! –

+0

正如@Cagatay的回答中所述,Primefaces 4.0版中刪除了此常量。 – mrswadge

3

對於PrimeFaces,你可以使用Constants類:

org.primefaces.util.Constants.VERSION 
+0

正如@Cagatay的回答中所述,此常數在Primefaces 4.0版中已刪除。 – mrswadge

14

In P rimeFaces 4.0,Constants.VERSION被刪除以支持;

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

同時還要注意FacesContext.class.getPackage().getImplementationVersion();,它並不如WebSphere一些應用服務器上運行。