Jsf primefaces:如何设置动态oncomplete事件值,如oncomplete="#backingbean.oncomplete“;

Jsf primefaces:如何设置动态oncomplete事件值,如oncomplete="#backingbean.oncomplete“;,jsf,primefaces,Jsf,Primefaces,我想显示不同的对话框从一个单一的按钮取决于backingbean计算。如显示消息“账单号已支付”,如果客户输入重复的账单号,如果账单号正常,则显示“账单已成功支付”。我怎样才能做到这一点 backingbean类: private String oncomplete=""; public String getOncomplete() { return oncomplete; } public void setOncomplete(String oncomplete) { th

我想显示不同的对话框从一个单一的按钮取决于backingbean计算。如显示消息“账单号已支付”,如果客户输入重复的账单号,如果账单号正常,则显示“账单已成功支付”。我怎样才能做到这一点

backingbean类:

private String oncomplete="";

public String getOncomplete() {
    return oncomplete;
}

public void setOncomplete(String oncomplete) {
    this.oncomplete = oncomplete;
}

public void bill_fees_calculation(){
    if(bill_no=="wrong"){
        oncomplete = "PF('wrongDialog').show()";        
    }
    else{
        oncomplete = "PF('rightDialog').show()"; 
    }
}
在我的xhtml中:

<p:commandButton oncomplete="#{backingbean.bill_fees_calculation}" icon="ui-icon-search" title="View" update=""/>

<p:dialog header="Bill Info" widgetVar="wrongDialog" modal="false" showEffect="fade" hideEffect="explode" resizable="false" closable="true" closeOnEscape="true">

        <p:outputPanel id="billDetail" autoUpdate="true" style="text-align:center;">
            <p:panelGrid  columns="2" columnClasses="label,value">                    

                <h:outputText value="Output:" />
                <h:outputText value="Bill no has been paid already" />                                        
            </p:panelGrid>
        </p:outputPanel>
    </p:dialog>

<p:dialog header="Bill Info" widgetVar="rightDialog" modal="false" showEffect="fade" hideEffect="explode" resizable="false" closable="true" closeOnEscape="true">

        <p:outputPanel id="billDetail" autoUpdate="true" style="text-align:center;">
            <p:panelGrid  columns="2" columnClasses="label,value">                    

                <h:outputText value="Output:" />
                <h:outputText value="Bill no has been paid successfully" />                                        
            </p:panelGrid>
        </p:outputPanel>
    </p:dialog>

您可以使用以编程方式声明JavaScript代码,该代码应在当前ajax请求完成时执行

public void billFeesCalculation() {
    RequestContext requestContext = RequestContext.getCurrentInstance();

    if ("wrong".equals(billNo)) {
        requestContext.execute("PF('wrongDialog').show()");
    }
    else{
        requestContext.execute("PF('rightDialog').show()");
    }
}
注意,我修复了原始代码段中的其他()问题


与具体问题无关,如果只使用一个带有动态(faces)消息的对话框,它会更干净,更容易编写代码。

您可以使用它以编程方式声明JavaScript代码,这些代码应该在当前ajax请求完成后执行

public void billFeesCalculation() {
    RequestContext requestContext = RequestContext.getCurrentInstance();

    if ("wrong".equals(billNo)) {
        requestContext.execute("PF('wrongDialog').show()");
    }
    else{
        requestContext.execute("PF('rightDialog').show()");
    }
}
注意,我修复了原始代码段中的其他()问题


与具体问题无关,如果只使用一个带有动态(faces)消息的对话框,它会更干净,更容易编写代码。

您可以使用它以编程方式声明JavaScript代码,这些代码应该在当前ajax请求完成后执行

public void billFeesCalculation() {
    RequestContext requestContext = RequestContext.getCurrentInstance();

    if ("wrong".equals(billNo)) {
        requestContext.execute("PF('wrongDialog').show()");
    }
    else{
        requestContext.execute("PF('rightDialog').show()");
    }
}
注意,我修复了原始代码段中的其他()问题


与具体问题无关,如果只使用一个带有动态(faces)消息的对话框,它会更干净,更容易编写代码。

您可以使用它以编程方式声明JavaScript代码,这些代码应该在当前ajax请求完成后执行

public void billFeesCalculation() {
    RequestContext requestContext = RequestContext.getCurrentInstance();

    if ("wrong".equals(billNo)) {
        requestContext.execute("PF('wrongDialog').show()");
    }
    else{
        requestContext.execute("PF('rightDialog').show()");
    }
}
注意,我修复了原始代码段中的其他()问题


与具体问题无关如果只使用一个带有动态(faces)消息的对话框,那么它将更加干净和代码化