2014-02-13 60 views
0

有人知道如何更改JSF組件消息的行爲,如驗證器消息,轉換器消息嗎? iam正在開展的項目允許用戶配置具有嚴重級別的自定義消息(無論是primeface growl消息還是普通jsf p:消息)的行爲。我們有單獨的util類來管理它。 但我們找不到解決方案來配置jsf組件消息的行爲。我們希望根據用戶配置它的方式將它們展示給用戶,例如:如果用戶希望將所有消息視爲咆哮,則包括jsf組件消息的所有消息都應該顯示爲咆哮消息。任何想法? 我們用戶primeface 4,jee7,JAVA 1.7更改JSF組件驗證消息的行爲

更新:

這是一個企業應用程序。我們在頭部有一個<p:growl id="growlMessageId" for="growlMessage" globalOnly="false" sticky="false" autoUpdate="true" redisplay="true" escape="false"/>和一個<p:messages id="messages" globalOnly="false" showDetail="false" autoUpdate="true" closable="true" redisplay="false" escape="false" rendered="#{empty param['showMessageInGlobal'] or param['showMessageInGlobal']}"/>,所有頁面(超過50個)使用這兩個組件顯示所有消息。因此,除了jsf組件錯誤消息之外,我們使用此util實現方法(其中的一部分)來更改消息的行爲。

FacesMessage fm = new FacesMessage(messageDescriptor); 
     fm.setSeverity(this.getFacesMessageSeverity(messageSeverity)); 
     fm.setDetail(""); 
     switch (severityDisplayType) { 
      case NOTIFICATION: 
       this.facesContext.addMessage(componentClientId, fm); 
       break; 
      case GROWL: 
       this.facesContext.addMessage("growlMessage", fm); 
       break; 
      default: 
     } 

我們想要改變jsf組件消息的行爲與上面相同。保持每個頁面2消息類型不是一個選項

+2

什麼生根粉保持號碼:在你的頁面信息都,但在渲染屬性使用和EL可以讓用戶看到他設置的方式MESG:咆哮和P。 – ZEE

+0

@ZeeshanurRahman我更新了原來的問題。我們已經有兩種類型。問題在於改變了驗證消息的行爲,比如jsp組件中需要的字段驗證,它總是顯示在 bluelabel

回答

0

我會保持這兩個組件與autoUpdate =「true」。事情是這樣的:

<p:messages autoUpdate="true" rendered="#{userPreferenceBean.showMessages}" /> 
<p:growl autoUpdate="true" rendered="#{userPreferenceBean.showGrowl}" /> 
+0

嗨丹尼爾,我已經更新了原來的問題,請看看我對@ZeeshanurRahman的評論。 – bluelabel