Hey, I have a similar problem with DynaValidatorActionForm. It says that invalid property when i have a ArrayList in the <form-property name="searchList" type="java.util.ArrayList"/> in the <form-bean declaration.
Any idea? Thanks and your help is appreciated. Silpa hugh111111 wrote: > > I've got a problem relating to the validation of indexed properties in > Struts 1.1 > I get the following error message when I try to access an ArrayList of > students in my DynaValidatorForm > > root cause > > java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 > java.util.ArrayList.RangeCheck(Unknown Source) > java.util.ArrayList.get(Unknown Source) > org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:298) > > > > Here is some background to the problem... > > In my session I have an ArrayList called studentsList of objects of type > experiment.mybeans.Student. A Student object has getter and setter methods > for id, year and gradeAverage. > > In my students.jsp I create a table by iterating through my student > objects like this... > > <c:forEach var="students" items="${sessionScope.group.studentsList}" > > <tr><td><html:text indexed="true" name="students" property="id"/></td> > <td><html:text indexed="true" name="students" property="year"/></td> > <td><html:text indexed="true" name="students" > property="gradeAverage"/></td></tr> > </c:forEach> > > As you can see the table contains empty text boxes and I would like to > validate these have been filled in, so in struts-config.xml I create my > dynavalidatorform as follows... > > <form-bean name="studentsForm" > type="org.apache.struts.validator.DynaValidatorForm" > > <form-property name="students" type="java.util.ArrayList" /> > </form-bean> > > And in validation.xml I place my validation rules... > > <form name="studentsForm"> > <field property="id" indexedListProperty="students" depends="required"> > <arg0 key="error.studentid.required"/> > </field> > <field property="year" indexedListProperty="students" > depends="required"> > <arg0 key="error.studentyear.required"/> > </field> > <field property="gradeAverage" indexedListProperty="students" > depends="required"> > <arg0 key="error.studentgrade.required"/> > </field> > </form> > > Now here is where things start to go a bit pear-shaped > > I have read somewhere online that I need to populate the form ArrayList > before I get to my jsp page. So I have created an action class called > PreStudentsAction.java which takes the student ArrayList out of the > session and assigns it to the student ArrayList in the form before > forwarding to the students.jsp page... > > public class PreStudentsAction extends Action{ > > public ActionForward execute(ActionMapping mapping, > ActionForm form, > HttpServletRequest request, > HttpServletResponse response) > throws Exception > { > > DynaValidatorForm myForm = (DynaValidatorForm)form; > Group group = (Group)request.getSession().getAttribute("group"); > ArrayList<Student> students = group.getStudentsList(); > > myForm.set("students", students); > return (mapping.findForward("success")); > } > > } > > > Finally when I run my application my table is displayed but when I fill in > the table and press submit I get the IndexOutOfBounds error. It appears to > me that the student ArrayList in the form remains empty and that my Action > class was unsuccessful in populating the form's ArrayList. > > Can anybody see what I'm doing wrong? > > > > -- View this message in context: http://old.nabble.com/Validation-of-indexed-properties-tp27493794p27714507.html Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org