Sorry Cielpa, my mistake.
Turns out there is such a thing as a DynaValidatorActionForm. Shows how much
I know.
Hugh
hugh111111 wrote:
>
> Hi Cielpa,
>
> 'Invalid property' would suggest that your form does not contain the
> property searchList. It is difficult to tell without a bit of background
> and seeing some code. Can you explain what you are doing and show me your
> struts-config.xml file.
>
> By the way, your form should be declared as a DynaValidatorForm. There is
> no such thing as a DynaValidatorActionForm.
>
> For example..
>
> <form-bean name="myForm"
> type="org.apache.struts.action.DynaValidatorForm">
> <form-property name="searchList" type="java.util.ArrayList"/>
> </form-bean>
>
>
>
> Hugh
>
>
>
>
> Cielpa wrote:
>>
>> 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-tp27493794p27720956.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]