Jsf Primefaces选择CheckboxMenu可在标签关闭时更新标签

Jsf Primefaces选择CheckboxMenu可在标签关闭时更新标签,jsf,primefaces,Jsf,Primefaces,我使用的是PrimeFaces5.2。 我在中有一个用于选择多个值。SelectCheckBox菜单的标签显示为“选择”。如果选择了某个值,我想将复选框菜单的标签更新为“编辑”,如果未选择任何值,则将其保留为“选择”。我希望只有在SelectCheckBox菜单关闭后才会发生这种情况 我提到了这个问题。但是在从checkboxMenu中选择一些值之后,该菜单会闪烁片刻(ajax调用发生并且标签被更新),然后重新赋值。但是由于眨眼发生在眨眼之间,这种行为很奇怪。例如,如果我在菜单中选择第一个复选框

我使用的是PrimeFaces5.2。 我在
中有一个
用于选择多个值。SelectCheckBox菜单的标签显示为“选择”。如果选择了某个值,我想将复选框菜单的标签更新为“编辑”,如果未选择任何值,则将其保留为“选择”。我希望只有在SelectCheckBox菜单关闭后才会发生这种情况

我提到了这个问题。但是在从checkboxMenu中选择一些值之后,该菜单会闪烁片刻(ajax调用发生并且标签被更新),然后重新赋值。但是由于眨眼发生在眨眼之间,这种行为很奇怪。例如,如果我在菜单中选择第一个复选框,然后立即选择第二个复选框,它会闪烁,当它再次出现时,只会选中一个复选框。以下是代码片段:

<p:column headerText="Apply To"  style="width:120px;text-align:center;">
    <p:selectCheckboxMenu id="applyToId" value="#{rule.accountTypes}" 
            label="#{rule.accountTypeLabel}" widgetVar="accntType">                                      
                <f:selectItems value="#{controller.customerAccTypes}" />
                    <p:ajax oncomplete="PF('accntType').show()"
                            listener="#{controller.populateLabel(rule,event)}"
                            update="applyToId"></p:ajax> 
    </p:selectCheckboxMenu></p:column>

我不确定我是否做错了什么。提前感谢。

能否在populateLabel方法中添加调试点并验证是否调用了此方法?能否在populateLabel方法中添加调试点并验证是否调用了此方法?
public void populateLabel(NewRules rule,AjaxBehaviorEvent event) {
    if (rule.getAccountTypes().length == 0) {
        rule.setAccountTypeLabel("Select One"); 
    } else {
         rule.setAccountTypeLabel("Edit"); 
    }}