繁体   English   中英

JSF Primefaces和ajax侦听器,呈现后未显示按钮

[英]JSF Primefaces and ajax listener, button not shown when rendered

我正在使用JSF和Primefaces开发JavaEE应用程序。 每次我按下一个按钮(验证)时,必须显示一个按钮(一个按钮)和一个消息(消息)。 问题是显示了消息,但没有显示按钮。 我该怎么做才能显示按钮?

这是我的代码:

ManagedBean IdCertificateManagedBean.java

String  m_strRoute;
String  m_strMessageRegister;
boolean m_bRegistrationCorrect;


//Getters and Setters 

//Constructor
public IdCertificateManagedBean()
{
        m_strMessageRegister = "";
        m_strRoute = "";
        m_bRegistrationCorrect = false;
}


 public void authenticateUser()
 {      
     try
    {
       int a=5;

        if (a ==5)
        {   

                m_strMessageRegister = "hello";
                m_bRegistrationCorrect = true; 
                m_strRoute = "/admin/menuadmin"; 
         }    
          else 
          { 
                m_strMessageRegister = "ERROR";
          } 
     }  
     catch ( Exception e)
    {
            m_strMessageRegister = "Error";
    }

  }

}

的facelet

<p:commandButton value="Authenticate">
    <p:ajax listener="#{IdCertificateManagedBean.authenticateUser()}" update="Message, Button" />
</p:commandButton>

<h:outputText id="Message" value="#{IdCertificateManagedBean.MessageRegister}" />                   
<p:commandButton id="Button" value="Go" action="#{IdCertificateManagedBean.route}" rendered=" {IdCertificateManagedBean.registrationCorrect}" />

您必须将<h:commandButton />包装为<h:panelGroup />并包装在容器中,然后刷新容器。 问题在于,在第一页加载时,不会呈现您的按钮,因此不会将其插入页面的DOM中。 在页面刷新时,您正在尝试刷新它,但由于按钮不在页面上而无法执行。 一个解决方案可能是这样

<h:panelGroup layout="block" id="buttonDiv">
    <h:commandButton ... />
</h:panelGroup>

然后在您的ajax中,您必须刷新buttonDiv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM