Java - Error en Struts-Layout con selecName y selecIndex

 
Vista:

Error en Struts-Layout con selecName y selecIndex

Publicado por Ridd (1 intervención) el 29/11/2006 01:46:33
Hola, buen día!

Estoy trabajando en un proyecto, en el cual necesito mostrar un catálogo de elementos, es decir, una lista. Debido a que es un abc, debo poder seleccionar varios de los elementos mostrados. Para ello utilizo un checkbox que me permita seleccionarlos. Por lo tanto, necesito una variable que me permita almacenar un arreglo de elementos seleccionados para que pueda trabajar con ellos.

El problema que se me presenta es, justamente, cuando le agrego la variable donde debe almacenar esos elementos. Defino una variable llamada "gruposEstadisticoId", de tipo java.lang.Integer[] (o sea, un arreglo), la cual almacenará los items elegidos, en este caso, los "grupoElementoId". A la variable arreglo, la asigno al selecName, pero al hacer esto y acceder a la página me genera un error del un índice fuera de rango. El error lo muestro abajo. (Error 1)

Haciendo pruebas, utilicé la propiedad selecIndex, asignándole "gruposEstadisticoId". Con ello, logro ver la página y elegir los elementos que necesito, pero cuando le doy el "submit", me marca un error de que no está definido un elemento index. El error está al final (Error 2).

Si alguien puede apoyarme para solucionarlo, se lo agradecería.

Agrego configuración de mi struts-config.xml y .jsp para brindar una visión más completa.

*** My struts-config.xml tiene lo siguiente: ****

<form-bean name="GrupoEstadisticoForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="whatNext" type="java.lang.String"/>
<form-property name="gruposEstadisticoId" type="java.lang.Integer[]"/>
<form-property name="grupoEstadisticoId" type="java.lang.Integer"/>
<form-property name="grupoEstadisticoDescripcion" type="java.lang.String"/>
<form-property name="productosId" type="java.lang.Integer[]"/>
<form-property name="productoId" type="java.lang.Integer"/>
<form-property name="productoDescripcion" type="java.lang.String"/>
</form-bean>


*** Mi jsp utiliza lo siguiente: ***

<layout:pager sessionPagerId="paginaGrupo" align="center" maxPageItems="10"> <layout:collection name="catalogoGrupo" title="" styleClass="celdaFondoClaro" styleClass2="celdaFondoOscuro" align="center" sortAction="client" selectName="gruposEstadisticoId" selectProperty="grupoEstadisticoId" selectType="checkbox">
<layout:collectionItem title="Id" property="grupoEstadisticoId"></layout:collectionItem>
<layout:collectionItem title="Descripcion" property="grupoEstadisticoDescripcion"></layout:collectionItem>
</layout:collection>
</layout:pager>

*** Y el error 1 generado con el selecName es el siguiente:***

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

java.lang.ArrayIndexOutOfBoundsException
java.lang.reflect.Array.get(Native Method)
org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:296)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:474)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
fr.improve.struts.taglib.layout.util.LayoutUtils.getBeanFromPageContext(LayoutUtils.java:210)
fr.improve.struts.taglib.layout.collection.CollectionTag.isCurrentBeanSelected(CollectionTag.java:525)
fr.improve.struts.taglib.layout.collection.CollectionTag.renderSelection(CollectionTag.java:491)
fr.improve.struts.taglib.layout.collection.CollectionTag.renderItem(CollectionTag.java:436)
fr.improve.struts.taglib.layout.collection.CollectionTag.addItem(CollectionTag.java:151)
fr.improve.struts.taglib.layout.collection.BaseCollectionTag.addItem(BaseCollectionTag.java:312)
fr.improve.struts.taglib.layout.collection.FastCollectionItemTag.doEndLayoutTag(FastCollectionItemTag.java:177)
fr.improve.struts.taglib.layout.LayoutTagSupport.doEndTag(LayoutTagSupport.java:47)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspx_meth_layout_collectionItem_0(catalogoGrupoEstadistico_jsp.java:604)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspx_meth_layout_collection_0(catalogoGrupoEstadistico_jsp.java:569)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspx_meth_layout_pager_0(catalogoGrupoEstadistico_jsp.java:525)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspx_meth_html_form_0(catalogoGrupoEstadistico_jsp.java:299)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspx_meth_html_html_0(catalogoGrupoEstadistico_jsp.java:163)
org.apache.jsp.catalogoGrupoEstadistico_jsp._jspService(catalogoGrupoEstadistico_jsp.java:93)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

*** El error 2 generado con el selecIndex es el siguiente: ***

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

java.lang.NullPointerException: No indexed value for 'grupoEstadisticoId[0]'
org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:293)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:474)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder