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

Reply via email to