1

我正在使用 Primefaces 组件框架和 Java Server Faces Web 应用程序开发。过去两天我遇到了这个问题。当我单击将呈现两个的统计输入开关组件,p:commandButton然后单击将呈现 5 个的开关计划输入时,p:commandButton尽管更新呈现效果很好,但这些按钮未设置名为 back bean 的变量的操作。请看下面两张图

在此处输入图像描述

不起作用的按钮

在此处输入图像描述

我假设有条件渲染的组件没有连接回 bean。可能是 ajax 渲染的组件无法识别整个应用程序。我f:setPropertyActionListener用于设置支持动作 bean 变量。

    <p:tab title="#{lang['top_menu_statistic_planning']}">
        <p:ribbonGroup>
            <h:form>
                <div class="statistic-planning-switcher-parts">
                    <p:inputSwitch onLabel="Statistic" offLabel="Planning"
                        value="#{selectBooleanView.value2}">
                        <p:ajax listener="#{selectBooleanView.addMessage}"
                            update=":mainReportSubViewsRenderID :mainViewsRenderID" />
                    </p:inputSwitch>
                </div>
            </h:form>
        </p:ribbonGroup>
        <p:ribbonGroup label="">
            <h:panelGroup id="mainReportSubViewsRenderID">
                <h:panelGroup
                    rendered="#{selectBooleanView.addMessage() == 'Checked'}">
                    <p:commandButton value="Import-1" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomout" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_statistic.import"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                    <p:commandButton value="Export" update=":mainViewsRenderID"
                        icon="fa fa-asterisk" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_statistic.export"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                </h:panelGroup>
                <h:panelGroup
                    rendered="#{selectBooleanView.addMessage() == 'Unchecked'}">
                    <p:commandButton value="Button-1" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomin" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_planning.section1"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                    <p:commandButton value="Button-2" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomin" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_planning.section2"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                    <p:commandButton value="Button-3" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomout" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_planning.section3"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                    <p:commandButton value="Button-4" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomin" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_planning.section4"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                    <p:commandButton value="Button-5" update=":mainViewsRenderID"
                        icon="ui-ribbonicon-zoomout" styleClass="ui-ribbon-bigbutton">
                        <f:setPropertyActionListener value="report_planning.section5"
                            target="#{hometabmanager.action}" />
                    </p:commandButton>
                </h:panelGroup>
            </h:panelGroup>
        </p:ribbonGroup>
    </p:tab>

---------上面的代码呈现在下面的panelgrid ----------------------------------

            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_planning.section1'}">
                <ui:include src="/views/report/report_section1.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_planning.section2'}">
                <ui:include src="/views/report/report_section2.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_planning.section3'}">
                <ui:include src="/views/report/report_section3.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_planning.section4'}">
                <ui:include src="/views/report/report_section4.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_planning.section5'}">
                <ui:include src="/views/report/report_section5.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_statistic.import' and selectBooleanView.subSectionPageBlock == 'block-statistic'}">
                <ui:include src="/views/report/report_import2.xhtml" />
            </h:panelGroup>
            <h:panelGroup
                rendered="#{hometabmanager.action == 'report_statistic.export' and selectBooleanView.subSectionPageBlock == 'block-statistic'}">
                <ui:include src="/views/report/report_export.xhtml" />
            </h:panelGroup>
4

0 回答 0