使用Javascript或Jquery可以獲得Primefaces版本嗎?通過javascript獲取primefaces版本
根據primeface 4或更新,widgetVar對象通過PF('widgetVar').something()
調用。而primefaces 3.5或更低版本不支持PF功能。 因此,我想編寫jquery funtion,支持通過任何primefaces版本調用對話框的widgetVar。
沒有人有任何想法,請分享。謝謝。
使用Javascript或Jquery可以獲得Primefaces版本嗎?通過javascript獲取primefaces版本
根據primeface 4或更新,widgetVar對象通過PF('widgetVar').something()
調用。而primefaces 3.5或更低版本不支持PF功能。 因此,我想編寫jquery funtion,支持通過任何primefaces版本調用對話框的widgetVar。
沒有人有任何想法,請分享。謝謝。
如果你去PrimeFaces展示並在控制檯中執行此:
PrimeFaces.getFacesResource
你會得到關於如何PrimeFaces暗示越來越Javascript中的當前版本,但不幸的是,該功能僅在展示腳本中可用。
所以我不得不重寫一個類似。
function getPFVersion() {
var src = $('script[src*="/javax.faces.resource/primefaces.js"]').attr("src");
return new RegExp("v=([^&]*)").exec(src)[1];
}
,您還可以在後端得到PrimeFaces版本:
PrimeFaces 4.0和更高
String pfVersion = RequestContext.getCurrentInstance().getApplicationContext().getConfig().getBuildVersion();
PrimeFaces 3.5和更低
String pfVersion = org.primefaces.util.Constants.VERSION;
感謝指教,第二個解決方案,即後端PrimeFaces版本的工作,比我的解決方案更好。此外,你的JavaScript是工作。 – wittakarn 2014-09-30 08:40:28
不客氣。 – 2014-09-30 08:43:16
我發現了一些問題。當我使用RequestContext.getCurrentInstance()。getApplicationContext()。getConfig()。getBuildVersion();使用primefaces 3.4.2,會發生NoSuchMethodError異常。因此,提出的後端不適用於primefaces 3.4.2。 – wittakarn 2014-10-09 03:42:43
最後,我用資源捆綁到存儲由行家建primefaces版本。
這段代碼在Managedbean檢查版本和更改模式的jquery調用。
public String getPFPattern(final String widgetVar){
String sPFVersion = getPrimefacesVersion();
double iPFVersion = 0;
String resp = widgetVar;
if(sPFVersion != null && !sPFVersion.equals("")){
iPFVersion = Double.parseDouble(sPFVersion);
}
if(iPFVersion >= 4){
resp = "PF('".concat(resp).concat("')");
}
return resp;
}
public String getPrimefacesVersion(){
ResourceBundle bundle = ResourceBundle.getBundle("com.xxx");
return bundle.getString("primefacesVersion");
}
我XHTML
oncomplete="#{versionBean.getPFPattern('dlgReference')}.show()"
的建議方法getPFPattern的情況下返回PF('xxx')
primefaces 4或更新的版本
版本號可以通過[Java代碼](http://stackoverflow.com/q/18355985/1391249)獲取。您可以創建一個AJAX請求,從服務器獲取並在您的JavaScript/jQuery代碼中使用。 – Tiny 2014-09-30 04:26:02
謝謝@Tiny建議,我認爲您的建議只是解決我的問題的一種解決方案。 – wittakarn 2014-09-30 04:30:47