In the action tag is the form scoped to session?
Cheers Mark
On Sunday, August 24, 2003, at 04:59 PM, Joel wrote:
I'm having a problem using Indexed text fields with DynaActionForms. I can make a jsp display my indexed text fields just fine using the <logic:iterate> and <html:text> custom tags. The problem is when I submit the form, there is a problem populating the DynaActionForm with my indexed text values. I'm wondering if the problem is the fact that the collection used is a java.util.List populated with by own custom beans, each bean containing three String fields with their own getters/setters. I'm wondering if I can use DynaActionForms in this instance. Below is a copy of my DynaActionForms Config, the jsp code that utilizes the form and the error message I get when the form is submitted. Any input would be of great help.
Thanks,
Joel.
Here's my DynaActionForm Bean declaration in struts-config.xml:
<form-bean name="persistRateInfo" type="org.apache.struts.action.DynaActionForm">
<!-- Specify the dynamic properties of the form --> <form-property name="hazardInsRate" type="java.lang.String"/> <form-property name="dealOneTerm" type="java.lang.String"/> <form-property name="dealOneIR" type="java.lang.String"/> <form-property name="dealOnePercentageDown" type="java.lang.String"/> <form-property name="dealTwoTerm" type="java.lang.String"/> <form-property name="dealTwoIR" type="java.lang.String"/> <form-property name="dealTwoPercentageDown" type="java.lang.String"/> <form-property name="dealThreeTerm" type="java.lang.String"/> <form-property name="dealThreeIR" type="java.lang.String"/> <form-property name="dealThreePercentageDown" type="java.lang.String"/> <form-property name="pmiRanges" type="java.util.List"/> </form-bean>
Here's the loop I use in the jsp that needs to display the values of pmiRanges. of the form bean:
<logic:iterate id="pmiRanges" name="persistRateInfo" property="pmiRanges">
<tr>
<td style="font-family: sans; font-size: 12;" width="100">Low: </td>
<td style="font-family: sans; font-size: 12;">
<html:text name="pmiRanges" property="low" indexed="true" size="5"/>
</td>
<td style="font-family: sans; font-size: 12;" width="100">High: </td> <td style="font-family: sans; font-size: 12;"> <html:text name="pmiRanges" property="high" indexed="true" size="5"/> </td>
<td style="font-family: sans; font-size: 12;" width="100">Rate: </td> <td style="font-family: sans; font-size: 12;"> <html:text name="pmiRanges" property="rate" indexed="true" size="5"/> </td> </tr> </logic:iterate>
Now I use a Struts Action to preload this form bean with values from a database. It does this fine. When the jsp is called for the first time, it utilizes the form bean, and the List perfectly and displays the indexed text fields just like I want it to. here is an example row of rendered text fields:
<tr> <td style="font-family: sans; font-size: 12;" width="100">Low: </td> <td style="font-family: sans; font-size: 12;"> <input type="text" name="pmiRanges[0].low" size="5" value="10.0">
</td>
<td style="font-family: sans; font-size: 12;" width="100">High: </td> <td style="font-family: sans; font-size: 12;"> <input type="text" name="pmiRanges[0].high" size="5" value="15.0"> </td>
<td style="font-family: sans; font-size: 12;" width="100">Rate: </td> <td style="font-family: sans; font-size: 12;">
<input type="text" name="pmiRanges[0].rate" size="5" value="5.7"> </td> </tr>
The problem comes in when I try to submit the form to save the form values. It doesn't seem that the form bean can be populated with
the indexed values. I get the follwoing Exception:
?
java.lang.NullPointerException: No indexed value for 'pmiRanges[0]'
at org.apache.struts.action.DynaActionForm.get(DynaActionForm.java:293)
at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyU tils.java:474)
at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyU tils.java:428)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUt ils.java:770)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.ja va:801)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

