You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Bharathiraja <bh...@chain-sys.com> on 2004/08/23 07:48:18 UTC
How to do validation for dynamically creating Multiple Fields
hi everybody,
In my application, i am having multilines with facility for adding multiline dynamically .I representing those fields through nested tags.These tag gets set through array of Objects.
So in this scenario how can i validate my multiline fields.
if i add new row and try to save it ,it throws exception in
populating saying IndexOutOfBound.
Please anybody help me to get rid of this problem.
Please give me suggestion whether my Form Bean and Jsp is correct for my requirement.
FormBean
---------------
private List multilineObjects=getObjects();
public void setMultilineObjects(List multilineObjects){
this.multilineObjects=multilineObjects;
}
public List getMultilineObjects(){
return multilineObjects;
}
public List getObjects(){
MultilineObjects[] obj=null;
ArrayList listOfObjects=null;
try{
listOfObjects= businessObjects.getOnLoadObjects();
}catch(Exception e){
e.printStackTrace();
}
return listOfObjects;
}
}
MyJSP
---------
<nested:iterate id="lineElement" property="multilineObjects" scope="request" >
<tr>
<td width="20%">
<nested:text property="moduleName" style="width:99%" styleClass="LinesTextboxFont" />
<nested:hidden name="lineElement" property="moduleId" />
</td>
<td width="21%" >
<nested:text readonly="true" property="shortName" style="width:99%" styleClass="LinesTextboxFont"/>
</td>
<td width="20%" >
<nested:text property="directory" style="width:99%" styleClass="LinesTextboxFont"/>
</td>
<td width="21%">
<nested:text property="startDate" style="width:99%" styleClass="LinesTextboxFont"/>
</td>
<td width="20%">
<nested:text property="endDate" style="width:99%" styleClass="LinesTextboxFont"/>
<nested:hidden property="whoColumn" />
</td>
</tr>
</nested:iterate>
MyValidation.xml
--------------------------
<form name="MultiLineForm" >
<field property="moduleName" indexedListProperty="echainModule" depends="required" >
<arg0 key="key.label.module" />
</field>
</form>
Exception Details
--------------------------
java.lang.IndexOutOfBoundsException: Index: 25, Size: 24
at java.util.ArrayList.RangeCheck(ArrayList.java:508)
at java.util.ArrayList.get(ArrayList.java:320)
at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:521)
at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)