3 Replies Latest reply on Sep 1, 2010 6:00 AM by ilya_shaikovsky

    rich:datatable value evaluated when rendered="false"

    lees

      I'm having an issue with the value EL expression of a rich:dataTable being evaluated even though the subview the table exists in is rendered="false". In the use case where this occurs the property does not exist and a PropertyNotFoundException results. This does not occur on the initial display - it all works fine then. But if I enter an invalid value in another part of the page during postback I get the error.

       

      This can be fixed by switching the rich:dataTable and columns to h:dataTable and columns.

       

      Any ideas on what's causing this?

        • 1. Re: rich:datatable value evaluated when rendered="false"
          ilya_shaikovsky

          show the code please.

          • 2. Re: rich:datatable value evaluated when rendered="false"
            lees

            Included two files plus partial stack trace. First xhtml file includes the second and contains several subviews that have rendered attributes. The second file is the one that contains the rich:dataTable with value being evaluated when rendered is false. The stack trace error message is consistent with the use case showing attempted evaluation on non-existent property.


            <html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:c="http://java.sun.com/jstl/core"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:t="http://myfaces.apache.org/tomahawk"
                xmlns:v="http://corejsf.com/validator"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:mf="http://pbo.unavco.org/mdm">
            
            <ui:composition>
                <h3>#{text['equipmentDetail.standardInformation']}</h3>
                <a4j:region>
                <h:panelGrid>
                <t:htmlTag value="fieldset">
                    
                <!-- station -->
                <f:subview id="stationView"
                    rendered="#{equipmentForm.equipment.station != null}">
                    <h:outputLabel styleClass="desc" for="station"
                        value="#{text['equipment.station']}" />
                    <a href="/mdm/spring/station-flow?stationId=#{equipmentForm.equipment.station.id}">
                    <h:outputText id="station" styleClass="text medium"
                        value="#{equipmentForm.equipment.station.name}" /> </a>
                </f:subview>
                
                <f:subview id="noStationView"
                    rendered="#{equipmentForm.equipment.station == null}">
                    <h:outputLabel styleClass="desc" for="station"
                        value="#{text['equipment.station']}" />
                    <h:outputText id="station" styleClass="text medium"
                        value="#{text['equipmentDetail.noStation']}" />
                </f:subview>
            
                <!-- idUNAVCO -->
                <mf:inputText label="#{text['equipment.idUNAVCO']}"
                    entity="#{equipmentForm.equipment}" property="idUNAVCO">
                    <mf:validate entity="#{equipmentForm.equipment}" property="idUNAVCO" />
                </mf:inputText>
            
                <!--  manufacturer -->
                <mf:selectOneMenu label="#{text['equipment.manufacturer']}"
                    entity="#{equipmentForm.equipment}"
                    property="manufacturer" required="false"
                    items="#{selectItemLookup.allManufacturers}">
                </mf:selectOneMenu>
                
                <!--  model -->
                <mf:inputText label="#{text['equipment.model']}"
                    entity="#{equipmentForm.equipment}" property="model">
                    <mf:validate entity="#{equipmentForm.equipment}" property="model" />
                </mf:inputText>
            
                <!--  serialNumber -->
                <mf:inputText label="#{text['equipment.serialNumber']}"
                    entity="#{equipmentForm.equipment}" property="serialNumber">
                    <mf:validate entity="#{equipmentForm.equipment}"
                        property="serialNumber" />
                </mf:inputText>
            
                <!--  project -->
                <mf:inputText label="#{text['equipment.project']}"
                    entity="#{equipmentForm.equipment}" property="project" readonly="true" required="false">
                    <mf:validate entity="#{equipmentForm.equipment}" property="project" />
                </mf:inputText>
            
                <p></p>
                <h:outputText value="#{text['timer.timedEquipment.label']}" style="font-weight: bold; font-size: 110%"/>
                    <t:div rendered="#{equipmentForm.equipment.timer != null}" >
                        <h:outputLink value="equipmentForm.html" immediate="true">
                            <h:outputText value="#{equipmentForm.equipment.timer.idUNAVCO}" style="font-weight: bold"/>
                            <f:param name="id" value="#{equipmentForm.equipment.timer.id}" />
                        </h:outputLink>
                        <h:outputText value=" #{text['timer.timedEquipment.instr']}" />
                    </t:div>
                    <t:div rendered="#{equipmentForm.equipment.timer == null}" >
                        <h:outputText value="#{text['timer.timedEquipment.noTimer']}" />
                    </t:div>
                <br/>
                
                <!--  remarks -->
                <mf:inputTextarea label="#{text['equipment.remarks']}"
                    entity="#{equipmentForm.equipment}" property="remarks" required="false">
                    <mf:validate entity="#{equipmentForm.equipment}" property="remarks" />
                </mf:inputTextarea>
            
                </t:htmlTag>
                </h:panelGrid>
            
                <!-- TcpIp interfaces -->
                <h3>#{text['equipmentDetail.tcpIp']}
                <mf:hint name="TcpIPHint" id="TcpIPHint" output="#{text['equipment.tcpIp.hint']}">
                    <h:outputText value="#{text['equipment.tcpIp.hint']}"/>
                </mf:hint>
                </h3>
            
                <h:panelGrid id="tcpGrid" lang="table">
                    <t:htmlTag value="fieldset">
                    
                    <h:panelGroup id="tcpIps" rendered="#{not empty equipmentForm.equipment.tcpIps}">
                        <t:dataTable id="tcpIpTable" var="tcpIp" 
                                    style="margin-top: 10px"
                                    value="#{equipmentForm.equipment.tcpIps}"
                                    styleClass="scrollerTable table" headerClass="standardTable_Header"
                                    rowClasses="standardTable_Row1,standardTable_Row2"
                                    columnClasses="standardTable_Column,standardTable_Column,standardTable_Column,standardTable_Column,standardTable_Column"
                                    >
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.interfaceLabel']}" />
                                </f:facet>
                                <mf:inputText entity="#{tcpIp}" property="interfaceLabel" required="false">
                                        <mf:validate entity="#{tcpIp}" property="interfaceLabel" />
                                </mf:inputText>
                            </t:column>
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.ipAddress']}" />
                                </f:facet>
                                <mf:inputText entity="#{tcpIp}" property="ipAddress" required="false">
                                        <mf:validate entity="#{tcpIp}" property="ipAddress" />
                                </mf:inputText>
                            </t:column>
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.hostname']}" />
                                </f:facet>
                                <mf:inputText entity="#{tcpIp}" property="hostname" required="false">
                                        <mf:validate entity="#{tcpIp}" property="hostname" />
                                </mf:inputText>
                            </t:column>
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.domainname']}" />
                                </f:facet>
                                <mf:inputText entity="#{tcpIp}" property="domainname" required="false">
                                        <mf:validate entity="#{tcpIp}" property="domainname" />
                                </mf:inputText>
                            </t:column>
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.netmask']}" />
                                </f:facet>
                                <mf:inputText entity="#{tcpIp}" property="netmask" required="false">
                                        <mf:validate entity="#{tcpIp}" property="netmask" />
                                </mf:inputText>
                            </t:column>                
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.gateway']}" />
                                </f:facet>
                                <mf:inputText
                                        entity="#{tcpIp}" property="gateway" required="false">
                                        <mf:validate entity="#{tcpIp}" property="gateway" />
                                </mf:inputText>
                            </t:column>
                            <t:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['tcpIp.dataAccessCount']}" />
                                </f:facet>
                                <h:outputText id="dataAccessorCount" value="#{fn:length(tcpIp.dataAccessors)}" rendered="#{not empty tcpIp.dataAccessors}"/>
                            </t:column>
                            <t:column>
                                <a4j:commandLink immediate="true" id="removeTcpIp" value="#{text['equipmentDetail.tcpIp.remove']}" action="#{equipmentForm.removeTcpIp}" reRender="tcpGrid">
                                    <t:updateActionListener property="#{equipmentForm.tcpIpToRemove}" value="#{tcpIp}" />
                                </a4j:commandLink>
                            </t:column>                
                        </t:dataTable>
                    </h:panelGroup>
            
                    <h:panelGroup id="noTcpIps" rendered="#{empty equipmentForm.equipment.tcpIps}">
                        <h:outputText value="#{text['equipment.noTcpIps']}"/>
                        <br/>
                    </h:panelGroup>
                    
                    <a4j:commandLink immediate="true" id="addTcpIp" value="#{text['equipmentDetail.tcpIp.add']}" action="#{equipmentForm.addTcpIp}" reRender="tcpGrid"/>
                
                </t:htmlTag>
                </h:panelGrid>
                </a4j:region>
                
            
                <!-- Type-specific attributes of equipment. -->
                <f:subview id="typeSpecificView">
                    <!-- Could be a GPS receiver  -->
                    <f:subview id="gpsReceiverView"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'GpsReceiver'}">
                        <ui:include src="equipmentFormGpsReceiverElements.xhtml">
                            <ui:param name="gpsReceiverBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>
            
                    <!-- Could be a CDMA  -->
                    <f:subview id="cdmaView"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'Cdma'}">
                        <ui:include src="equipmentFormCdmaElements.xhtml">
                            <ui:param name="cdmaBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>
            
                    <!-- Could be a VSAT Receiver  -->
                    <f:subview id="vsatReceiverView"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'VsatReceiver'}">
                        <ui:include src="equipmentFormVsatReceiverElements.xhtml">
                            <ui:param name="vsatReceiverBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>
                    
                    <!-- Could be a Radio -->
                    <f:subview id="radioView"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'Radio'}">
                        <ui:include src="equipmentFormRadioElements.xhtml">
                            <ui:param name="radioBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>        
                    
                    <!-- Could be a rain gauge -->
                    <f:subview id="rainGauge"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'RainGauge'}">
                        <ui:include src="equipmentFormRainGaugeElements.xhtml">
                            <ui:param name="rainGaugeBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>    
                    
                    <!-- Could be a tiltmeter -->
                    <f:subview id="tiltmeter"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'Tiltmeter'}">
                        <ui:include src="equipmentFormTiltmeterElements.xhtml">
                            <ui:param name="tiltmeterBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>   
                    
                    <!-- Could be a Pore Pressure Monitor -->
                    <f:subview id="porePressureMonitor"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'PorePressureMonitor'}">
                        <ui:include src="equipmentFormPorePressureMonitorElements.xhtml">
                            <ui:param name="porePressureMonitorBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>    
                    
                    <!--  Could be a weather station -->
                    <f:subview id="weatherStation"  rendered="#{equipmentForm.equipment.equipmentType.type == 'WeatherStation'}">
                        <ui:include src="equipmentFormWeatherStationElements.xhtml">
                            <ui:param name="weatherStationBean" value="#{equipmentForm.equipment}"/>
                        </ui:include>
                    </f:subview>
                    
                    <!-- Could be a gtsm RT Board -->
                    <f:subview id="rtBoard"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'GtsmRtBoard'}">
                        <ui:include src="equipmentFormRtBoardElements.xhtml">
                            <ui:param name="rtBoardBean" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>   
                
                    <f:subview id="gtsmStrainmeter"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'GtsmBoreholeStrainmeter'}">
                        <ui:include src="equipmentFormGtsmStrainmeter.xhtml">
                            <ui:param name="gtsmStrainmeter" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>   
                
                    <!-- Could be an Choke Ring Antenna -->
                    <f:subview id="chokeRingAntenna"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'ChokeRingAntenna'}">
                        <ui:include src="equipmentFormAntennaElements.xhtml">
                            <ui:param name="antenna" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>
            
                    <!-- Could be an Zephyr Antenna -->
                    <f:subview id="zephyrAntenna"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'ZephyrAntenna'}">
                        <ui:include src="equipmentFormAntennaElements.xhtml">
                            <ui:param name="antenna" value="#{equipmentForm.equipment}" />
                        </ui:include>
                    </f:subview>
                    
                    <f:subview id="timer"
                        rendered="#{equipmentForm.equipment.equipmentType.type == 'Timer'}">
                        <ui:include src="equipmentFormTimerElements.xhtml">
                            <ui:param name="timer" value="#{equipmentForm.equipment}" />
                        </ui:include>    
                    </f:subview>
            
                </f:subview>
            
                <mf:viewStationLink formId="${formId}"/>
            
            </ui:composition>
            </html>
            

             

            This is equipmentFormTimerElements.xhtml

             

            <html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:c="http://java.sun.com/jstl/core"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:t="http://myfaces.apache.org/tomahawk"
                xmlns:v="http://corejsf.com/validator"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:mf="http://pbo.unavco.org/mdm">
            
            <ui:composition>
            
            <a4j:region>
                <rich:panel>
                    <f:facet name="header">
                        <h:outputText value="#{text['timer.valuesEntryHeader']}"/>
                    </f:facet>
                    
                    <rich:dataTable value="#{timer.timerOnPeriods}" var="timerOnPeriod" rules="rows" border="2" id="timerPeriodTable" >
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{text['timer.timerOnPeriod.dayHeader']}"/>
                            </f:facet>
                            
                            <h:selectOneMenu value="#{timerOnPeriod.day}" required="true" id="timerDaySelect">
                                <f:selectItem itemValue="" itemLabel="Select day of week..." itemDisabled="true" />
                                <f:selectItems value="#{selectItemLookup.daysOfWeek}" />
                            </h:selectOneMenu>
                        </rich:column>
                        
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{text['timer.timerOnPeriod.startTimeHeader']} #{text['timer.timerOnPeriod.format']}"/>
                            </f:facet>
                            
                            <h:inputText value="#{timerOnPeriod.startTime}" maxlength="5" required="true">
                                <f:convertDateTime pattern="HH:mm" type="time" timeZone="UTC"/>
                            </h:inputText>
                        </rich:column>
                        
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{text['timer.timerOnPeriod.stopTimeHeader']} #{text['timer.timerOnPeriod.format']}"/>
                            </f:facet>
                            
                            <h:inputText value="#{timerOnPeriod.endTime}" maxlength="5" required="true">
                                <f:convertDateTime pattern="HH:mm" type="time" timeZone="UTC"/>
                            </h:inputText>
                        </rich:column>
                        
                        <rich:column>
                            <a4j:commandLink immediate="true" id="removeTimerOnPeriod" action="#{equipmentForm.removeTimerOnPeriod}" reRender="timerPeriodTable">
                                <h:graphicImage value="/images/delete.gif" style="border:0"/>
                                <t:updateActionListener property="#{equipmentForm.timerOnPeriodToRemove}" value="#{timerOnPeriod}" />
                            </a4j:commandLink>
                        </rich:column>
                    </rich:dataTable>
                    
                    <a4j:commandButton immediate="true" id="addTimerOnPeriod" value="#{text['timer.timerOnPeriod.addButton']}" action="#{equipmentForm.addTimerOnPeriod}" reRender="timerPeriodTable"/>
                </rich:panel>
                
                <br/>
                
            
                <rich:panel>
                    <f:facet name="header">
                        <h:outputText value="#{text['timer.timedEquipmentHeader']}"/>
                    </f:facet>
                        
                    <rich:dataTable value="#{timer.timedEquipment}" var="eqp" border="2" rows="0" id="eqpTable" frame="border">
                                                            
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['equipment']} (click image to edit equipment)."/>
                                </f:facet>
                                <h:outputLink id="editEquipmentForm" immediate="true" value="equipmentForm.html">
                                    <f:param name="id" value="#{eqp.id}" />
                                    <h:graphicImage url="#{eqp.equipmentCatalog.smallImageUrl}" id="eqpImage" style="position:relative; left: 3-px"/>
                                </h:outputLink>
                                <br/>
                                <h:outputText value="#{text[eqp.equipmentType.labelKey]}"/>
                            </rich:column>
                            
                            <rich:column >
                                <f:facet name="header">
                                    <h:outputText value="#{text['equipment.idUNAVCO']}" />
                                </f:facet>
                                <h:outputText value="#{eqp.idUNAVCO}" id="unavcoId"/>
                            </rich:column>
                            
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="#{text['equipment.serialNumber']}" />
                                </f:facet>
                                <h:outputText value="#{eqp.serialNumber}" id="serialNum"/>
                            </rich:column>
                                     
                            <rich:column>
                                <a4j:commandLink immediate="true" id="removeTimedEquipment" action="#{equipmentForm.removeTimedEquipment}" reRender="eqpTable">
                                        <h:graphicImage value="/images/delete.gif" style="border:0" />
                                        <t:updateActionListener property="#{equipmentForm.timedEquipmentToRemove}" value="#{eqp}" />
                                </a4j:commandLink>
                            </rich:column>
                    </rich:dataTable>
                   
                    <style>
                        .status {
                            font-weight: bold;
                            color: red;
                        }
                    </style>
                
                    
            
                        <t:div >
                            <t:panelGrid columns="1" >
                                <t:panelGroup >
                                    <h:outputLabel for="timedEquipmentId" 
                                        value="Select additional station equipment to be controlled by this timer." 
                                        styleClass="desc" />
                                   
                                    <br/>
                                    <h:inputText id="timedEquipmentId" style="margin:0px" value="#{equipmentForm.newTimedEquipUnavcoId}" required="false"/>
                                   
                                    <h:graphicImage value="/images/selectArrow.png"
                                        onclick="#{rich:component('timedEquipSuggestionId')}.callSuggestion(true)" alt="" />
                                        <rich:toolTip for="#{selectorId}" showDelay="500" value="#{text['timer.selectTimedEquipInstr']}" hideDelay="10"/>
                                </t:panelGroup>
                            </t:panelGrid>
                            
                            <rich:message for="timedEquipmentId" styleClass="fieldError" />
                            
                            <rich:suggestionbox height="200" width="300"
                                suggestionAction="#{equipmentForm.getPotentialTimedEquipment}" 
                                var="equipment" 
                                for="timedEquipmentId"
                                fetchValue="#{equipment.idUNAVCO}" 
                                minChars="2"
                                nothingLabel="No available equipment" 
                                id="timedEquipSuggestionId">
                                    <a4j:support event="onselect" action="#{equipmentForm.findNewTimedEquipment}" reRender="eqpTable" />
                                
                                <rich:column>
                                    <h:graphicImage value="#{equipment.smallImageUrl}" />
                                    <br/>
                                    <h:outputText value="#{text[equipment.equipmentType.labelKey]}" />
                                </rich:column>
                                <rich:column>
                                    <h:outputText value="#{equipment.idUNAVCO}"/>
                                </rich:column>
                                <rich:column>
                                    <h:outputText value="#{equipment.serialNumber}"/>
                                </rich:column>                    
                            </rich:suggestionbox>
                        </t:div>           
                </rich:panel>       
            </a4j:region>
            </ui:composition>
            
            </html>
            

             

            stack trace -

             

            Caused by: javax.el.PropertyNotFoundException: /equipmentFormTimerElements.xhtml @20,124 value="#{timer.timerOnPeriods}": Property 'timerOnPeriods' not found on type org.unavco.pbo.mdm.equipment.model.Cdma
                    at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)
                    at javax.faces.component.UIData.getValue(UIData.java:1054)
                    at org.ajax4jsf.component.UIDataAdaptorBase.getValue(UIDataAdaptorBase.java:1647)
                    at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
                    at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
                    at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:121)
                    at org.ajax4jsf.component.UIDataAdaptorBase.getExtendedDataModel(UIDataAdaptorBase.java:621)
                    at org.ajax4jsf.component.UIDataAdaptorBase.getRowIndex(UIDataAdaptorBase.java:311)
                    at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
                    at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
                    at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                    at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                    at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:230)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.createOutputLabelMap(HtmlMessageRenderer.java:245)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.getOutputLabelMap(HtmlMessageRenderer.java:212)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.findInputLabel(HtmlMessageRenderer.java:156)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.getSummary(HtmlMessageRenderer.java:94)
                    at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessageRendererBase.renderSingleFacesMessage(HtmlMessageRendererBase.java:123)
                    at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessageRendererBase.renderMessage(HtmlMessageRendererBase.java:108)
                    at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessageRendererBase.renderMessage(HtmlMessageRendererBase.java:63)
                    at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.encodeEnd(HtmlMessageRenderer.java:59)
                    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
                    ... 109 more
            
            • 3. Re: rich:datatable value evaluated when rendered="false"
              ilya_shaikovsky

              made simple check with next code

               

              <a4j:outputPanel rendered="false">
              <rich:dataTable align="center"
              onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
              onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
              cellpadding="0" cellspacing="0" 
              width="700" border="0" var="record" value="#{report.expReport.records}">
               
              ///table content
               
              </rich:dataTable>
              </a4j:outputPanel>
              <a4j:commandButton value="submit"></a4j:commandButton>
              </h:form>
              

               

              and the table value binding not getting called neither on initial rendering nor afte clicking the button using RF 3.3.3.Final.