I am trying to build my table from the values I have in my arary.
My JSp page code looks like this
<TABLE id="mytable">
<logic:present property="firstName" name="addRateForm">
<logic:iterate id="element" name="addRateForm"
property="firstName" indexId="i" >
<tr>
<% int j = ((Integer)
pageContext.getAttribute("i")).intValue(); %>
<td><html:text name="addRateForm"
property="<%=\"firstName[\"+j+\"]\"%>" />
<bean:write name="addRateForm"
property="<%=\"firstName[\"+j+\"]\"%>" />
<html:hidden property="firstName" value="a" />
</td>
<td><html:select property="<%=\"sex[\"+j+\"]\"%>" >
<html:option value=""> </html:option>
<html:option value="Male" >Male</html:option>
<html:option value="Female" >Female</html:option>
</html:select>
</td>
</tr>
</logic:iterate>
</logic:present>
<tr>
<td><html:text property="firstName" value="" /></td>
<td><html:select property="sex">
<html:option value=""> </html:option>
<html:option value="Male" >Male</html:option>
<html:option value="Female" >Female</html:option>
</html:select>
</td>
</tr>
</TABLE>
Here my table is dynamic, I start with one empty row when the page loads
first, then I keep adding rows to the table and when I submit, (Lets say
b'cas of some validation errors I want to display the page again, now I
need to build the table where I am using the Logic:iterate to loop thru
my firstName array).
My Action Form(addRateForm.java) Liiks like this
private String[] FirstName=null;
private String[] sex=null;
public String[] getFirstName(){
return this.FirstName;
}
public void setFirstName(String[] newName){
FirstName = newName;
// setRow();
}
public String[] getSex(){
return sex;
}
public void setSex(String[] newSex){
sex = newSex;
}
It all woks fine when I am doing the first time
Say I added three rows and submitted, upon validation failure the page
comes back with three rows of data and a blank row.
This is the source after it builds the page
<TABLE id="mytable">
<tr>
<td><input type="text" name="firstName[0]" value="Sashi ">
</td>
<td><select name="sex[0]"><option value=""> </option>
<option value="Male" selected="selected">Male</option>
<option value="Female">Female</option></select>
</td>
</tr>
<tr>
<td><input type="text" name="firstName[1]" value="Sushma">
</td>
<td><select name="sex[1]"><option value=""> </option>
<option value="Male">Male</option>
<option value="Female"
selected="selected">Female</option></select>
</td>
</tr>
<tr>
<td><input type="text" name="firstName" value=""></td>
<td><select name="sex"><option value=""> </option>
<option value="Male" >Male</option>
<option value="Female"
selected="selected">Female</option></select>
</td>
</tr>
</TABLE>
Now when I make some changes and resubmit
I get Null Pointer Exception
java.lang.NullPointerException
void
org.apache.commons.beanutils.PropertyUtils.setIndexedProperty(java.lang.Object,
java.lang.String, int, java.lang.Object)
PropertyUtils.java:1328........
Let me know if I have to provide more info
Also I used indexed="true" but it did not work so I tried to do the way
I showed above.
Thanks
>>> [EMAIL PROTECTED] 06/11/03 11:15AM >>>
Can you explain what it is you are trying to do? (in a broader scope)
Have you looked at or used indexed fields before?
--
James Mitchell
Software Developer/Struts Evangelist
http://www.struts-atlanta.org
----- Original Message -----
From: "Sashi Ravipati" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, June 11, 2003 10:41 AM
Subject: How can I do this
I am reading the values from an array, when I build my table I use
<html:text name="addRateForm" property="<%=\"firstName[\"+j+\"]\"%>" />
the above tag converts to
<input type="text" name="firstName[1]" value="b">
Now I also want to build a hidden value along with the text box as shown
below
<input type=hidden value="b" >
I tried to to this which does not work
<html:hidden property="firstName" value='<bean:write name="addRateForm"
property="<%=\"firstName[\"+j+\"]\"%>" />' />
How can I achieve this
Thanks
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]