title: Conditional rendering of subclasses within JSF ui:repeat tag
body: <p>in a way similar to <a href="https://stackoverflow.com/questions/4166247/how-to-handle-polymorphism-with-jsf2" title="here">here</a> I am using an abstract class to type the item set list 
   of <em>ui:repeat</em>. Concrete subclasses override the getType() method, that is used to 
   conditionally render the respective subtype with its particular properties:</p>
  
  <pre><code>&lt;!-- AbstractAction Rule#getActions() --&gt;
  &lt;ui:repeat value="#{rule.actions}" var="action"&gt;
    &lt;!-- render when "action" instance of NotificationAction --&gt;
    &lt;h:panelGroup rendered="#{action.type == 'notification'}"&gt; 
      ... UI for NotificationAction properties 
    &lt;h:panelGroup rendered="#{action.type == 'callback'}"&gt; 
      ...
  </code></pre>
  
  <p>When run on Glassfish 3 there is an error about properties not being defined on list 
   members of other subclasses (PropertyNotFoundException), which occurs in a branch that 
   is actually switched off by the <em>rendered</em> property. <em>c:forEach/c:choose</em> do not seem 
   appropriate. Any ideas how to make the rendering really conditional and bypass the 
   property checking are highly appreciated!</p>
  
  <p>Thank you. 
      Jaro</p>