I have a code like this:
<p:outputPanel id="conditionalPanel">
<p:panel rendered="#{object.category.string == 'foo'}">
<ui:param name="foo" value="#{object}"/>
<h:panelGrid columns="3" id="fooAssignmentsuttonGrid">
<h:outputLabel for="barToAdd" styleClass="desc" value="#{foobarzooUIData.label}"/>
<h:selectOneMenu id="barToAdd" value="#{fooController.barToAdd}">
<f:selectItems value="#{barsToAddAssignments}"
var="foobarzoo" itemValue="#{foobarzoo}"
itemLabel="#{foobarzooUIData.buildLabelForObject(foobarzoo)}"/>
</h:selectOneMenu>
<p:commandButton value="#{text['button.add']}" process="@this barToAdd"
update="assignmentDetail" disabled="#{empty barsToAddAssignments}"
action="#{fooController.createNewAssignment(foo)}">
</p:commandButton>
</h:panelGrid>
<p:outputPanel id="fooAssignmentsTable">
<p:dataTable value="#{utils:toList(foo.fooAssignments)}" var="assignment">
<!-- p:columns here etc..-->
</p:dataTable>
</p:outputPanel>
<p:outputPanel id="assignmentDetail">
<p:panel rendered="#{not empty fooController.selectedAssignment}" style="margin-top: 30px;">
<h:panelGrid id="assignmentDetailForm" styleClass="formsTable" columns="2">
<!-- Some kick ass code here -->
</h:panelGrid>
</p:panel>
</p:outputPanel>
</p:panel>
</p:outputPanel>
The problem is, when I hit this page when
object.category.string == 'foo'
is not satisfied, I am still getting:
/test.xhtml @264,147 value="#{utils:toList(foo.fooAssignments)}": The class 'com.foo.bar.too does not have the property 'fooAssignments'.
Yes, I know this class does not have this property, but this should not be evaluated at all, isn't it?
What am I missing here?