0

我使用 JSF 2.0 和 primefaces 3.2。我在使用 Growl 时遇到问题,当我单击按钮时,我看不到任何咆哮声。这是我的代码:

demarrageArretServices.xhtml

 <p:growl id="gr" showDetail="true" /> 
   <p:panel header="Etat du service Postfix" style="width:375px;height:200px;top:20px;left:20px;position:absolute;border-color:#66CCCC;border-style:solid;border-width:3px;">  
         <p:graphicImage value="/images/stop.png" style="top:4px;left:310px; position: absolute;width:30px;height:30px;"/>    
         <p:graphicImage value="/images/start.png" style="top:4px;left:340px; position: absolute;width:30px;height:30px;"/>
         <h:outputLabel value="Ce service est " style="top:70px;left:20px;position:absolute;font-size:17px;" />

         <p:commandLink id="ajax1" update="et1,bt1" actionListener="#{servicesBean.consulterEtatPostfix()}" style="top:70px;left:140px;position:absolute;font-size:17px;" >  
              <h:outputText value="actuellement" />  
         </p:commandLink>
         <h:outputText id="et1" value="#{servicesBean.etatPostfix}" style="font-style:italic;font-weight:bold;color:#66CCCC;top:68px;left:260px;position:absolute;font-size:19px;"/>

         <h:outputLabel value="Vous pouvez changer son état en cliquant" style="top:110px;left:20px;position:absolute;font-size:17px;" />
         <h:outputLabel value="sur" style="top:160px;left:20px;position:absolute;font-size:17px;" />

         <p:commandButton id="bt1" value="#{servicesBean.boutonPostfix}" actionListener="#{servicesBean.changerEtatPostfix()}" update="gr" style="top:150px;left:70px;position:absolute;font-size:16px;width:100px;height:35px;" />    

   </p:panel>



   <p:panel header="Etat du service Cyrus-Imap" style="width:375px;height:200px;top:170px;left:220px;position:absolute;border-color:#66CCCC;border-style:solid;border-width:3px;">
         <p:graphicImage value="/images/stop.png" style="top:4px;left:310px; position: absolute;width:30px;height:30px;"/>    
         <p:graphicImage value="/images/start.png" style="top:4px;left:340px; position: absolute;width:30px;height:30px;"/>
         <h:outputLabel value="Ce service est" style="top:70px;left:20px;position:absolute;font-size:17px;" />

          <p:commandLink id="ajax2" update="et2,bt2" actionListener="#{servicesBean.consulterEtatCyrus()}" style="top:70px;left:140px;position:absolute;font-size:17px;" >  
              <h:outputText value="actuellement" />  
         </p:commandLink>
         <h:outputText id="et2" value="#{servicesBean.etatCyrus}" style="font-style:italic;font-weight:bold;color:#66CCCC;top:68px;left:260px;position:absolute;font-size:19px;"/>


         <h:outputLabel value="Vous pouvez changer son état en cliquant" style="top:110px;left:20px;position:absolute;font-size:17px;" />
         <h:outputLabel value="sur" style="top:160px;left:20px;position:absolute;font-size:17px;" />

         <p:commandButton id="bt2" value="#{servicesBean.boutonCyrus}" actionListener="#{servicesBean.changerEtatCyrus()}" update="gr" style="top:150px;left:70px;position:absolute;font-size:16px;width:100px;height:35px;" />    


   </p:panel>
        </h:form>

服务Bean.java

import javax.faces.application.FacesMessage;  
import javax.faces.context.FacesContext;
public void changerEtatPostfix ()
    {

        if (boutonPostfix.equals("arrêter"))
        {
            executerCommande ("rcpostfix stop");
            FacesMessage msg = new FacesMessage("Succès", "Postfix est arrêté ");    
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
        else
        {   
            executerCommande ("rcpostfix start");
            FacesMessage msg = new FacesMessage("Succès", "Postfix est démarré");    
            FacesContext.getCurrentInstance().addMessage(null, msg );
        }
    }
public void changerEtatCyrus ()
    {

        if (boutonCyrus.equals("arrêter"))
        {
            executerCommande ("rccyrus stop");
            FacesMessage msg = new FacesMessage("Succès", "Cyrus-IMAP est arrêté ");    
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }

        else
        {
            executerCommande ("rccyrus start");
            FacesMessage msg = new FacesMessage("Succès", "Cyrus-IMAP est démarré");    
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }}  
4

2 回答 2

0

您要么需要从命令按钮更新咆哮组件,要么可以使用在每次 ajax 请求/响应后autoUpdate=true更新的属性:p:growl

<p:growl id="messages" autoUpdate="true"/>
于 2012-06-08T08:28:32.863 回答
0

确保您在表单标签内

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

...

</h:form>
于 2012-06-08T03:05:49.890 回答