2014-09-29 37 views
2

下面是PrimeFaces展示關於<p:growl>標籤的示例代碼。在此示例中,當您單擊「保存」按鈕時,出現兩條消息是「Succesful」和「SecondMessage」 。根據FacesMessage動態更改<p:growl sticky>屬性

link就是我說的。

這是示例代碼從PrimeFaces展示

<h:form> 
    <p:growl id="growl" showDetail="true" sticky="true" /> 

    <p:panel header="Growl"> 
     <h:panelGrid columns="2" cellpadding="5"> 
      <p:outputLabel for="msg" value="Message:" /> 
      <p:inputText id="msg" 
         value="#{growlView.message}" 
         required="true" /> 
     </h:panelGrid> 

     <p:commandButton value="Save" 
         actionListener="#{growlView.saveMessage}" 
         update="growl" /> 
    </p:panel> 
</h:form> 

而且從PrimeFaces豆GrowlView.java再次展示。

@ManagedBean 
public class GrowlView { 

    private String message; 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public void saveMessage() { 
     FacesContext context = FacesContext.getCurrentInstance(); 

     context.addMessage(null, new FacesMessage("Successful", "Your message: " + message)); 
     context.addMessage(null, new FacesMessage("Second Message", "Additional Message Detail")); 
    } 
} 

我的問題是,如何才能讓「成功的」消息的粘= TRUE,SecondMessage的粘=假?

我嘗試使用兩個<p:growl>標籤來改變第二咆哮的位置和粘性。但是如果關閉第一咆哮,第二咆哮的位置不會像PrimeFaces展示示例那樣變化。

+0

在所提供的例子中,消息是由相同的咆哮處理。檢查每個咆哮有兩條消息時會發生什麼。 – Seitaridis 2014-09-29 12:20:25

+0

當我試着使用2,使這個咆哮第二growl.I的頂部第一低吼,如果你合上咆哮可以定位解決這個問題的任何growl.But,下面的因爲我positioning.My目標咆哮的立場未發生變化當你閉上上咆哮時,下面的咆哮就像PrimeFaces展示的例子一樣咆哮下去。 – 2014-09-29 13:18:14

回答

1

這是修改後的示例代碼:

<h:form id="growlForm"> 
    <p:growl id="growl1" showDetail="true" sticky="true" /> 
    <p:growl id="growl2" showDetail="true" sticky="false" /> 

    <p:panel header="Growl"> 
     <h:panelGrid columns="2" cellpadding="5"> 
      <p:outputLabel for="msg" value="Message:" /> 
      <p:inputText id="msg" value="#{growlView.message}" 
       required="true" /> 
     </h:panelGrid> 

     <p:commandButton value="Save" 
      actionListener="#{growlView.saveMessage}" update="growl1 growl2" /> 
    </p:panel> 
</h:form> 

而且saveMethod:

public void saveMessage() { 
    FacesContext context = FacesContext.getCurrentInstance(); 

    context.addMessage("growlForm:growl1", new FacesMessage("Successful", "Your message: " + message)); 
    context.addMessage("growlForm:growl1", new FacesMessage("Second Message", "Additional Message Detail")); 

    context.addMessage("growlForm:growl2", new FacesMessage("Successful 2", "Your message: " + message)); 
    context.addMessage("growlForm:growl2", new FacesMessage("Second Message 2", "Additional Message Detail")); 
} 

我發現了一些在這種情況下奇怪。起初,咆哮中有saveMethod中添加了四條消息。經過一段時間(6秒,life屬性的默認值),growl1的所有消息消失如預期。

我不知道爲什麼都咆哮結束了各4個消息。我搜索了現有的咆哮問題,並看到與multiple grows有關的問題。

看看生成的HTML。你有同樣的事情嗎?

+0

是的,我完全一樣! – 2014-09-29 14:21:26

+0

在PrimeFaces論壇(http://forum.primefaces.org/viewtopic.php?f=3&t=17808)上討論了所報告的問題。這個問題還沒有解決。我建議你報告這兩個咆哮的重複消息。 – Seitaridis 2014-09-29 14:50:54