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]



Reply via email to