Hi all. I don't have find anything in the sources. I have made a "little ugly patch" to my application. If in the validate I have errors and must return to the HTML. I reload the ArrayList from the database. Doing this, I have found one thing more: - I arrive to the HTML form. I press submit. If the validate has errors, I reload the ArrayList from database. I return to the HTML form. - I submit the HTML form again. This time THE ARRAYLIST HAVEN'T DISAPPEARED. I don't know why, but only disappear the first time I submit the form. Some idea? (apart from a bug of garbage collector) Thanks to all! > -----Mensaje original----- > De: Míguel Ángel Mulero Martínez > [mailto:miguel-angel.mulero@mad.tecsidel.es] > Enviado el: lunes, 18 de noviembre de 2002 16:29 > Para: Struts Users Mailing List > Asunto: RE: ArrayList disappeared in ActionForm > > > Hi Sri, > > > > Looking at your multibox logic, is the 'rol' property in the > > 'userDataBean' an array of Strings? This should represent the > > value(s) that the user selects -- so, if the initial setting is > > all boxes un-checked, this will be an empty String[]. > > Yes, the rol is a String[]. It works OK when I present the HTML form the > first time. Afterwards I can't present it because the > rolesPosibles doesn't > exist. > > > > > Are you modifying/setting your ArrayList (rolesPossibles) in the > > reset? I don't see how else it can become null. This list, as > > you know, represents all the possible checkbox values. > > The only thing I modify in the reset is the userDataBean.rol (and I have > tried too to erase the reset function). I modify the roles > posibles only in > the set. > > > > > I don't know if the above helped. Another source of information > > is the html-multibox.jsp that is part of the > > struts-exercise-taglib application that ships with Struts. > > > > Sri > > > > Thanks for your help. I will take a look to the source of > multibox to see if > this help. It's a strange thing that. I've done a lot of HTML forms with > Struts and never had encounter this problems. > > Thanks again! > Miguel > > > > > > -----Original Message----- > > From: Míguel Ángel Mulero Martínez > > [mailto:miguel-angel.mulero@mad.tecsidel.es] > > Sent: Monday, November 18, 2002 2:06 AM > > To: Struts Users Mailing List > > Subject: RE: ArrayList disappeared in ActionForm > > > > > > Hi all! > > > > Thanks to both for your reply. Sorry for my late reply (and my > > poor english) but in the weekend I can't write to the group. > > > > Here some code of my classes (comments are in spanish, sorry): > > > > > > My ActionForm has: > > > > ------------------------------------ > > public class FichaUsuarioActionForm extends ActionForm { > > > > .... > > > > > > /** Datos del usuario */ > > > > private FichaUsuarioDataBean ficha; > > > > /** Roles posibles para situar en el formulario */ > > > > private ArrayList rolesPosibles; > > > > > > > > public FichaUsuarioActionForm() { > > > > log.debug("Constructor iniciado"); > > > > ficha = new FichaUsuarioDataBean(); > > > > log.debug("Constructor finalizado"); > > > > } > > > > > > > > public FichaUsuarioDataBean getUserDataBean() { > > > > log.debug("getUserDataBean ejecutado"); > > > > return ficha; > > > > } > > > > > > > > public void setUserDataBean(FichaUsuarioDataBean user) { > > > > log.debug("setLoginDataBean ejecutado"); > > > > ficha = user; > > > > } > > > > > > > > public ArrayList getRolesPosibles() { > > > > log.debug("getRolesPosibles ejecutado"); > > > > return rolesPosibles; > > > > } > > > > > > > > public void setRolesPosibles(ArrayList _roles) { > > > > log.debug("setRolesPosibles ejecutado"); > > > > rolesPosibles = _roles; > > > > } > > > > ..... > > > > } > > > > ----------- > > > > > > ficha is used to retrieve the values of a HTML form. > > rolesPosibles is an ArrayList that I must use in the same HTML > > form (in a multicheck tag). They are private, so I must set its > > values using the setXXXX function, and this function writes to > > the log a message. The constructor writes to the log too. > > > > > > In the Action before the HTML form, I use the setRolesPosibles() > > to put an inicial ArrayList. > > > > My HTML form is in the way (login/editarUsuario.jsp): > > > > -------------- > > > > > focus="userDataBean.user" enctype="multipart/form-data"> > > > > > size="60" /> > > > > ...... > > > > > id="elementoListadoRoles"> > > > > > > > > > > > > > > > >
> > > >
> > > > ...... > > > > ------------ > > > > > > So I use the rolesPosibles to put a list of checkbox in my HTML > > form. The struts-config.xml is like: > > > > ----------- > > > > > > > > .... > > > > > > > > > type="es.mulria.bonsai.login.actionform.FichaUsuarioActionForm"/> > > > > .... > > > > > > > type="es.mulria.bonsai.login.action.ModificarUsuariosAction" > > > > name="fichaUsuario" > > > > input="/login/editarUsuario.jsp" > > > > validate="true"> > > > > > > > > ... > > > > ----------- > > > > > > My problem is that if the validate() of the ActionForm has > > errors, and returns to the HTML form, the ArrayList rolesPosibles > > has disappear (null), but the ficha not, and has all the values > > the user puts in the HTML form. The log is like (I only put the > > ActionForm log): > > > > ---------- > > > > > > > > # The Action before the JSP creates the ActionForm with the > > ArrayList, and puts it in the request > > > > 15 nov 2002 19:25:54,280 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > Constructor iniciado > > > > 15 nov 2002 19:25:54,280 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > Constructor finalizado > > > > 15 nov 2002 19:25:54,340 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > setRolesPosibles ejecutado > > > > .... > > > > > > > > # Here rolesPosibles has an ArrayList. I can see it if I print it > > in the log. > > > > > > > > # Now, the JSP prints all the values in the HTML form (they are > > in the UserDataBean > > > > 15 nov 2002 19:25:54,431 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > getUserDataBean ejecutado > > > > 15 nov 2002 19:25:54,511 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > getUserDataBean ejecutado > > > > .... > > > > > > > > # To put the list of checkbox in the page, it calls the ArrayList > > > > 15 nov 2002 19:25:54,561 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > getRolesPosibles ejecutado > > > > .... > > > > > > > > # All OK, the ArrayList continues in the ActionForm, and the JSP > > is displayed. > > > > > > > > # Now, I submit it. Struts takes the UserDataBean to put the > > values, the problem is that now, the ArrayList doesn't exist (is > > null), Without calling the constructor and without calling the > > setXXXXX (the log don't appear). How can Struts change the > > ArrayList without calling any of that? Of course, the others > > functions in the class don't use the ArrayList for nothing. > > > > > > > > 15 nov 2002 19:26:50,301 [Thread-7] DEBUG > > es.mulria.bonsai.login.actionform.FichaUsuarioActionForm - > > getUserDataBean ejecutado > > > > ------- > > > > So, if the validate has some error and returns to the JSP, it has > > an error when tries to retrieve the ArrayList of checkbox (null). > > > > > > Some idea? Thanks for read all this (and sorry for my english) > > > > > > Miguel > > > > -----Mensaje original----- > > De: shirishchandra.sakhare@ubs.com > [mailto:shirishchandra.sakhare@ubs.com] > > Enviado el: viernes, 15 de noviembre de 2002 15:48 > > Para: struts-user@jakarta.apache.org > > Asunto: RE: ArrayList disappeared in ActionForm > > > > > > Hi, > > I didnt understand your problem very well.But some points U should know. > > > > > I use the log4j, and the constructor of the ActionForm isn't called. > > > The setXXXX for the ArrayList isn't called too. > > > > Struts uuses Class.forName() .newInstance() to instantiate new > > form objects. So the default constructor will be called in this > > case.So Any lists etc u need to set must Be initialised in the > > default constructor. > > > > -----Original Message----- > > From: Sri.Sankaran [mailto:Sri.Sankaran@sas.com] > > Sent: Friday, November 15, 2002 3:18 PM > > To: struts-user > > Subject: RE: ArrayList disappeared in ActionForm > > > > > > Intermixed... > > > > > -----Original Message----- > > > From: Míguel Ángel Mulero Martínez > > > [mailto:miguel-angel.mulero@mad.tecsidel.es] > > > Sent: Friday, November 15, 2002 2:03 AM > > > To: Lista Struts > > > Subject: ArrayList disappeared in ActionForm > > > > > > > > > Hi all! I've got a little problem with Struts 1.0.2. > > > > > > I've got an ActionForm with two objects: one for save the values of a > > > HTML form, and an ArrayList with Strings to print in the HTML form. > > > > I don't follow. Why do you need separate objects for display and > > for capture. That is the purpose of the ActionForm. > > > > > > > > The HTML form inits well, reading the values (object and > > > ArrayList) from the ActionForm created in an Action before. When I > > > press the submit button, the reset function is called and afterwards > > > the object is updated with the new values. My problem is that if I > > > read the ArrayList, it is null. > > > > How do the objects in your ActionForm map to your ArrayList. > > Need to see some code. Send appropriate sections of your JSP, > > form-bean (ActionForm) and Action class. > > > > > > > > I use the log4j, and the constructor of the ActionForm isn't called. > > > The setXXXX for the ArrayList isn't called too. > > > > > > Where is my ArrayList? Why it's null? > > > > > > Thanks to all! > > > > > > Miguel > > > > > > > Sri > > > > > > > > > > > -- > > > To unsubscribe, e-mail: > > > unsubscribe@jakarta.apache.org> > > > For > > > additional commands, > > > e-mail: > > > > > > > > > > -- > > To unsubscribe, e-mail: > > > > For additional commands, e-mail: > > > > > > > > > > -- > > To unsubscribe, e-mail: > > > > For additional commands, e-mail: > > > > > > > > -- > > To unsubscribe, e-mail: > > > > For additional commands, e-mail: > > > > > > > > -- > > To unsubscribe, e-mail: > > > > For additional commands, e-mail: > > > > > -- > To unsubscribe, e-mail: For additional commands, e-mail: -- To unsubscribe, e-mail: For additional commands, e-mail: