1

I am using Primefaces components framework with Java Server Faces web application development. I faced this problem for past two days. When I click statistic input switch component that will render two p:commandButton after that click switch planning input that will render 5 p:commandButton these buttons aren't set action named variable of back bean despite update rendering work well. Please see below two pictures

enter image description here

buttons that aren't work

enter image description here

I am assume conditionally rendered components aren't connected back bean. Might be ajax rendered components not recognized entire application. I am using f:setPropertyActionListener for setting backing action bean variable.

    <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>

---------above code renders on below 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>
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • You need to put your XHTML code where these buttons are located and your backing been code that you're expecting to be executed – Sam Orozco Nov 08 '16 at 15:57
  • thank you for your first valuable comment, i am using Primefaces RibbonGroup and every button works good at first rendered when page load despite conditionally rendered component buttons aren't set its own value to backing bean. yes I did, codes are placed each own proper place. – Delgerbayar Nov 09 '16 at 00:47

0 Answers0