2013-08-21 30 views
6

Tôi sử dụng PrimeFaces 3.5.x và Mojarra JSF 2.1.x Tôi muốn truy cập và hiển thị phiên bản của cả hai thư viện theo lập trình.Truy cập số phiên bản JSF và Primefaces theo chương trình

Tôi sử dụng các phiên bản dưới dạng thuộc tính maven2, nhưng tôi hy vọng có một cách dễ dàng hơn để tải phiên bản. tôi hy vọng sẽ tìm thấy một cái gì đó như:

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

Một Javascript giải pháp dựa trên sẽ là tốt quá, vì tôi chỉ muốn hiển thị phiên bản trên một trang trạng thái.

Trả lời

8

Đối 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(); 

Đối Primefaces 3.x bạn có thể sử dụng lớp Constants trong utils gói:

import org.primefaces.util.Constants; 

Constants.VERSION 
+0

Cảm ơn. Đối với JSF, giải pháp của bạn chỉ trả về "2.1". Để có được phiên bản nhỏ là tốt, tôi thấy điều này: Package.getPackage ("com.sun.faces"). GetImplementationVersion() trả về "2.1.25". – alfonx

+0

Tôi đã cập nhật câu trả lời để chỉ định điều đó. Cảm ơn nhiều! –

+0

Như đã đề cập trong câu trả lời của @Cagatay, hằng số này đã bị xóa trong phiên bản 4.0 của Primefaces. – mrswadge

3

Đối PrimeFaces, bạn có thể sử dụng lớp Constants:

org.primefaces.util.Constants.VERSION 
+0

Như đã đề cập trong câu trả lời của @Cagatay, hằng số này đã bị xóa trong phiên bản 4.0 của Primefaces. – mrswadge

14

Trong P rimeFaces 4.0, Constants.VERSION bị xóa bỏ;

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

Đồng thời xem ra cho FacesContext.class.getPackage().getImplementationVersion();, nó không hoạt động trên một số máy chủ ứng dụng như websphere.

Các vấn đề liên quan