JSF + DataTable + ArrayList

I want use an ArrayList into a DataTable in JSF application, but the JSP give an error.

my JSP Page is:

<h:form id="SRD">

<h:outputText value="Status: "/>

<h:selectOneMenu value="#{catalogo.noStatus}">

<f:selectItems value="#{catalogo.status}"/>

</h:selectOneMenu>

<h:dataTable value="#{srd.lDocumentos}" var="doc" id="TablaDoc">

<h:column>

<a4j:commandButton reRender="TablaDoc" value="X" action="#{srd.eliminar}" onclick="document.forms.SRD['SRD:SecArreglo'].value='#{doc.seq}'"/>

</h:column>

<h:column>

<f:facet name="header">

<h:outputText value="N鷐ero"/>

</f:facet>

<h:outputText value="#{doc.numero}"/>

</h:column>

<h:column>

<f:facet name="header">

<h:outputText value="Revisi髇"/>

</f:facet>

<h:outputText value="#{doc.revision}"/>

</h:column>

<h:column>

<f:facet name="header">

<h:outputText value="Archivo"/>

</f:facet>

<h:outputText value="#{doc.archivo}" />

</h:column>

</h:dataTable>

<h:inputHidden id="SecArreglo" value="#{srd.secArreglo}"/>

<h:commandButton value="Enviar" action="aceptada"/>

</h:form>

It works with Array but not with ArrayList

The code of Bean is:

import java.util.ArrayList;

publicclass Srd{

.

.

.

private ArrayList lDocumentos;

public Srd(){lDocumentos =new ArrayList();

lDocumentos.add(new DocSRD(0,"L1a","1b","1c","1"));

lDocumentos.add(new DocSRD(1,"L2a","2b","2c","1"));

lDocumentos.add(new DocSRD(2,"L3a","3b","3c","1"));

lDocumentos.add(new DocSRD(3,"L4a","4b","4c","1"));

lDocumentos.add(new DocSRD(4,"L5a","5b","5c","1"));

.

.

.

public ArrayList getLDocumentos(){

return this.lDocumentos;

}

.

.

.

}

My faces-config.xml

<managed-bean>

<managed-bean-name>srd</managed-bean-name>

<managed-bean-class>miip.Srd</managed-bean-class>

<managed-bean-scope>session</managed-bean-scope>

<managed-property>

<property-name>numero</property-name>

<property-class>java.lang.String</property-class>

<value/>

</managed-property>

<managed-property>

<property-name>comentario</property-name>

<property-class>java.lang.String</property-class>

<value/>

</managed-property>

<managed-property>

<property-name>secArreglo</property-name>

<property-class>java.lang.String</property-class>

<value/>

</managed-property>

</managed-bean>

And the trace of the error:

javax.servlet.ServletException: Error getting property'lDocumentos' from bean of type miip.Srd

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:864)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)

org.apache.jsp.usuarios.SRD_jsp._jspService(SRD_jsp.java:91)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)

javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)

javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)

org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)

org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:65)

org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:226)

root cause

javax.faces.el.PropertyNotFoundException: Error getting property'lDocumentos' from bean of type miip.Srd

com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:107)

com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:167)

com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:151)

com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243)

com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173)

com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)

javax.faces.component.UIData.getValue(UIData.java:527)

javax.faces.component.UIData.getDataModel(UIData.java:856)

javax.faces.component.UIData.setRowIndex(UIData.java:379)

com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:65)

javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:683)

javax.faces.component.UIData.encodeBegin(UIData.java:681)

javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:591)

javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:543)

com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:491)

org.apache.jsp.usuarios.SRD_jsp._jspx_meth_h_dataTable_0(SRD_jsp.java:240)

org.apache.jsp.usuarios.SRD_jsp._jspx_meth_h_form_0(SRD_jsp.java:152)

org.apache.jsp.usuarios.SRD_jsp._jspx_meth_f_view_0(SRD_jsp.java:115)

org.apache.jsp.usuarios.SRD_jsp._jspService(SRD_jsp.java:81)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)

javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)

javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)

org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)

org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:65)

org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:226)

Can anybody help me.

Thanks in advance

[9178 byte] By [electrosama] at [2007-10-3 5:20:52]
# 1
may be you have to generate getters and setters in your class Srdpublic ArrayList getLDocumentos() {return lDocumentos;}public void setLDocumentos(ArrayList lDocumentos) {this.lDocumentos = lDocumentos;} ;)
spirouuua at 2007-7-14 23:27:48 > top of Java-index,Desktop,Developing for the Desktop...
# 2
Try the following forum (about JSF technology) http://forum.java.sun.com/forum.jspa?forumID=427
UncleSAMa at 2007-7-14 23:27:48 > top of Java-index,Desktop,Developing for the Desktop...