在公司決定用JSF作為java web前端框架時,我們這邊前端的頭頭決定用jsf開源類庫primefaces結合jsf標准標簽來用。剛開始接觸的時候碰過不少bug。后面用了一兩個項目的時候,還算是用的比較順手,這些就寫寫在項目中我遇到關於primefaces一些小問題和解決方法。
1 關於primefaces的模態框 p:dialog,必須要放在你想覆蓋的外面,因為dialog的z-index永遠高不了父類的z-index。
<h:form id="content">你想覆蓋的內容</h:form>
<h:form id="dialog"><p:dialog><p:dialog></h:form>
2 關於漢化日期。
<p:calendar pattern="yyyy-MM-dd" timeZone="GMT+8" locale="zh_CN" />
首先pattern一定要是MM是大寫的,要不然會導致有些數據有問題,至於漢化日期,一定要把primefaces一個PrimeFaces.locales的js文件給引進來,至於文件哪里找,我記得是在官網,具體的在官網哪里大家自己找找。把文件引進來,然后local=“某國語言”。timeZone="GMT+8"關於時區這個也一定要寫上。
3 關於p:cellEditor里面的日期漢化。
在p:cellEditor里面我發現,日期這個控件無法漢化,試過很多都沒辦法。最后只能在里面用一個p:calendar,不用input和output來切換。只能形式的通過css和js來實現。
4 對於取消,關閉等按鈕,如果只是一個退出的操作,不需要提交動作的,千萬不要為了樣式統一,而設成p:commandButton h:commandButton,盡量使用像<h:outputLable>這種輸出流的標簽
其實工作中還遇到過很多小問題,一時間也記不起,等再遇到再補充上來。