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

