0

无论我使用什么(jsf ajax、bootsfaces、primefaces),复选框都会在第二次单击时调用 bean 方法。我做了很多研究,尝试使用omnifaces的fixviewstate,没有任何效果。bean 方法仅在第二次点击时触发,从不在第一次点击时触发。这是 primefaces 的示例:

<h:form id="myformexample">
                    <b:row>
                        <b:column colSm="12">
                            <p:selectBooleanCheckbox id="value2zz" value="#{selectedEmployeeDayBean.morningActive}">
                                <p:ajax update="mypane" listener="#{selectedEmployeeDayBean.clickMorning()}" />
                            </p:selectBooleanCheckbox>

                        </b:column>
                    </b:row>

                    <h:panelGroup id="mypane">
                        <b:row>
                            <b:column colSm="12">
                                <h:outputText value="#{selectedEmployeeDayBean.morningActive}"/>
                            </b:column>
                        </b:row>
                    </h:panelGroup>

                </h:form>

我的支持 bean 方法:

 public boolean isMorningActive() {
        return morningActive;
}

public void setMorningActive(boolean morningActive) {
    this.morningActive = morningActive;
}

 public void clickMorning(){
    this.morningActive = !this.morningActive;
}

我使用 JSF 2.2 和 javaEE8,primefaces6.0 bootsfaces1.0,部署在 wildfly(jboss) 10.0

我做错了什么?谢谢

4

1 回答 1

0

表单被包装到 bootsfaces 模式中,并且出于任何原因,bean 方法仅在第二次单击时触发,因此它不会更新表单。现在我使用由 jquery 触发的官方引导模式,它在第一次点击时按预期工作。

编辑 现在我的代码看起来像:

<h:form id="myformexample">
                    <b:row>
                        <b:column colSm="12">
                           <h:selectBooleanCheckbox value="#{selectedEmployeeDayBean.morningActive}"                                                       id="checkmorning">
                                        <f:ajax event="click" render="mypane" execute="@this"/>
                           </h:selectBooleanCheckbox>

                        </b:column>
                    </b:row>

                    <h:panelGroup id="mypane">
                        <b:row>
                            <b:column colSm="12">
                                <h:outputText value="#{selectedEmployeeDayBean.morningActive}"/>
                            </b:column>
                        </b:row>
                    </h:panelGroup>

</h:form>
于 2016-11-16T10:19:58.870 回答