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
buttons that aren't work
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>