2013-05-14 83 views
2

我有這樣的commandButton:顯示咆哮時,頁面加載primefaces JSF2

<p:commandButton value="Enregistrer" action="#{reglementClientMB.ajouter}" 
      process="@this @form" update="@form" > 
      <f:setPropertyActionListener target="#{reglementClientMB.est_ajouter}" value="false" /> 
      </p:commandButton> 

操作方法返回到另一個網頁,我想顯示一個p:growl

我測試到下一個頁面加載提出這是它的管理bean的構造函數,但咆哮在頁面下方顯示的數據

FacesContext.getCurrentInstance().addMessage(
         null, 
         new FacesMessage(FacesMessage.SEVERITY_INFO, "" 
           + "Confirmation", "Réglement crée avec sucée")); 

       RequestContext.getCurrentInstance().update("messages"); 

我怎麼能做到這一點

預先感謝您

回答

9

Bean的構造可能是工作太晚了,如果<p:growl>是之前已建成首次豆呈現。例如。

<p:growl /> 
... 
<h:outputText value="#{bean.something}" /> 

只有在構建bean之前構造bean纔有效。

<h:outputText value="#{bean.something}" /> 
... 
<p:growl /> 

爲了解決您的具體問題,您需要在預渲染視圖偵聽器中完成這項工作。

<f:event type="preRenderView" listener="#{bean.init}" /> 

有了:

public void init() { 
    // Add the desired message here. 
} 
+1

我通過將消息/咆哮在我的模板代碼的最後..解決的問題是一個好/可以接受的做法?或者我會遇到問題呢? – Jenson

+0

@Jenson:回答時,您需要確保在呈現目標消息組件之前添加了消息。你選擇哪種方式取決於你。 – BalusC