here is the sample program that i have done for dynamic addrow. but when i submit the form the action form gets resetted and i am not able to retrieve the rows that i have dynamically added. please help me. Thanks in advance <?xml version = '1.0' encoding = 'windows-1252'?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="addbean" type="mypackage1.frmAddRowForm"/> </form-beans> <action-mappings> <action path="/ActionMap" type="mypackage1.AddRowAction" name="addbean" scope="session"> <forward name="Success" path="/AddRow.jsp"/></action> </action-mappings> </struts-config> //AddRowAction.java package mypackage1; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mypackage1.frmAddRowForm; public class AddRowAction extends Action { /** * This is the main action called from the Struts framework. * @param mapping The ActionMapping used to select this instance. * @param form The optional ActionForm bean for this request. * @param request The HTTP Request we are processing. * @param response The HTTP Response we are processing. */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { frmAddRowForm af=(frmAddRowForm)form; if(af.getaction().equals("Check")) { String[] aid=af.getaId(); String[] adesc=af.getaDesc(); System.out.println("Total Rows="+af.gettxtRows()); for(int i=0;i<af.getaId().length;i++) System.out.println(aid[i]+ "-$$$$$$-" +adesc[i]); af.setRows(); System.out.println("Total Rows="+af.gettxtRows()); System.out.println(af.getlstBean().size()); af.settxtRows(new Integer( af.getlstBean().size()).toString()); return mapping.findForward("Success"); } return mapping.findForward("Success1"); } } //frmAddRowForm.java package mypackage1; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionMapping; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Collection; import mypackage1.AccIdBean; public class frmAddRowForm extends ActionForm { public frmAddRowForm() { lstBean=new ArrayList(); txtRows="0"; System.out.println("Add Row Form Constructor Called"); } /** * Reset all properties to their default values. * @param mapping The ActionMapping used to select this instance. * @param request The HTTP Request we are processing. */ public void reset(ActionMapping mapping, HttpServletRequest request) { super.reset(mapping, request); } /** * Validate all properties to their default values. * @param mapping The ActionMapping used to select this instance. * @param request The HTTP Request we are processing. * @return ActionErrors A list of all errors found. */ public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { return super.validate(mapping, request); } public String[] getaId() { return this.aId; } public String[] getaDesc() { return this.aDesc; } public String getaction() { return this.action; } public String gettxtRows() { return this.txtRows; }public String getcheck() { return this.check; } public ArrayList getlstBean() { return this.lstBean; } public void setaId(String[] str) { this.aId=str; } public void setaDesc(String[] str) { this.aDesc=str; } public void setaction(String act) { this.action=act; } public void settxtRows(String act) { this.txtRows=act; } public void setcheck(String act) { this.check=act; } public void setlstBean(ArrayList lstArr) { this.lstBean=lstArr; } public void setRows() { final int size = Integer.parseInt(this.txtRows); if(lstBean.size()>0) lstBean.clear(); for (int i = 0; i < size; i++) { AccIdBean aBean=new AccIdBean(this.aId[i],this.aDesc[i]); lstBean.add(aBean); } } private String[] aId=null; private String[] aDesc=null; private String action=""; private String txtRows=""; private String check="0"; private ArrayList lstBean=null; }