I have a form like the following:

<h:form id="myForm">            
        <x:selectManyCheckbox id="items2" layout="spread">
                <f:selectItems value="#{test.items2}"/>
        </x:selectManyCheckbox>

        <x:dataTable var="item" value="#{test.items}" id="myDataTable">
                <h:column id="myColumn">
                        <x:checkbox for="items2" index="0"/>
                </h:column>
        </x:dataTable>
</h:form>

test.items2 is an ArrayList containing 3 SelectItem objects:

public class Test {
        private Collection items2;      
        public Test() {
                items2 = new ArrayList(3);
                items2.add(new SelectItem("200", "Duke's Quarterly", ""));
items2.add(new SelectItem("202", "Duke's Diet and Exercise Journal", ""));
                items2.add(new SelectItem("201", "Innovator's Almanac", ""));
        }
        public Collection getItems2() {return items2;}
        public void setItems2(Collection items2) {this.items2 = items2;}
}

When I render this I get the following error:

StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalStateException: Could not find component 'items2' (calling findComponent on component 'myForm:myDataTable_0:_id7') at org.apache.myfaces.renderkit.html.ext.HtmlCheckboxRenderer.renderSingleCheckbox(HtmlCheckboxRenderer.java:99)

It looks like the <x:checkbox> can't find the reference to the selectManyCheckbox with id="items2" due to the fact thatit's inside the dataTable. Is there another way to render the <x:checkbox> components inside a dataTable?

Greetings
Jan

Reply via email to