John Smith created TOMAHAWK-1661:
------------------------------------

             Summary: dataTable value evaluated if parent component not 
rendered if preserveDataModel is true
                 Key: TOMAHAWK-1661
                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1661
             Project: MyFaces Tomahawk
          Issue Type: Bug
    Affects Versions: 1.1.14
            Reporter: John Smith


If a t:dataTable's parent component's rendered attribute evaluates to false, 
the dataTable's value attribute is still evaluated if the dataTable has the 
preserveDataModel attribute set to true.

While I don't think this strictly violates the spec (it says under 2.2.6: 'If 
the isRendered() method of a component returns false, the renderer for that 
component must not generate any markup, and none of its facets or children (if 
any) should be rendered.'), it is at the very least inconsistent with other JSF 
components, which do not evaluate the value if not rendered

Example:
<html xmlns="http://www.w3.org/1999/xhtml";
          xmlns:h="http://java.sun.com/jsf/html";
          xmlns:t="http://myfaces.apache.org/tomahawk"; >
        <h:head />
        <h:body>
                <h:form>
                        <h:panelGroup rendered="false">
                                <t:dataTable value="#{bean.list}" var="list" 
preserveDataModel="true" >
                                        <h:column>#{list}</h:column>
                                </t:dataTable>
                        </h:panelGroup>
                        </h:form>
        </h:body>
</html>
-------------------------------------------------
@RequestScoped
@ManagedBean
public class Bean {
        public List<String> getList(){
                throw new RuntimeException("this should not be called");
        }
}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to