Need all functionality in one screen/form (check box , dynamic rows , user inputs , validation) & all using dynaform. Here is the code. -------------------------------------------------------------------------------------- * Dynaform <form-bean name="adjustmentForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="employees" type=""java.util.ArrayList"" /> </form-bean> This form is in request scope.
* Not yet reach to validation configuration (using validation.xml) -------------------------------------------------------------------------------------- * Action class java.util.ArrayList empoyeebeans = getDataPopulatebean() // get data in list. get data & populate below bean dynaForm.set("employees",empoyeebeans); -------------------------------------------------------------------------------------- Here is bean ( public class EmployeeBean { public String getEmpid() { return empid; } public void setEmpid(String empid) { this.empid = empid; } public String getEmployeename() { return employeename; } public void setEmployeename(String employeename) { this.employeename = employeename; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getPremium() { return premium; } public void setPremium(String premium) { this.premium = premium; } public String getTier() { return tier; } public void setTier(String tier) { this.tier = tier; } private String empid; private String employeename; private String premium; private String date; private String tier; } ----------------------------------------------------------------------------------------------- JSP code <logic:iterate id="employee" name="adjustmentForm" property="employees" indexId="count"> <bean:define id="remainder" value="<%=Integer.toString(count.intValue() % 2) %>"/> <tr> <td> <html:checkbox name="employee" property = "empid" value="<%=((EmployeeBean)ebs.get(count.intValue())).getSsn()%>" indexed="true"/></td> <td>Employee SSN</td> <td><bean:write name="employee" property = "empid" /> </td> </tr> <tr> <td> </td> <td>Employee Name</th> <td><bean:write name="employee" property = "employeename" /> <html:hidden name="employee" property = "employeename" indexed="true"/> </td> </tr> <tr> <td > </td> <td >Tier</th> <td ><bean:write name="employee" property = "tier" /> <html:hidden name="employee" property = "tier" indexed="true"/></td> </tr> <tr> <td> </td> <td>Premium</th> <td><bean:write name="employee" property = "premium" /> <html:hidden name="employee" property = "premium" indexed="true"/> </td> </tr> <tr > <td > </td> <td >Reason</td> <td><select id="reason" name="reason"> <option value=""></option></select></td> </tr> <tr> <td> </td> <td>Termination Date</td> <td><html:text name="employee" property = "date" indexed="true" /> <html:hidden name="employee" property = "date" indexed="true"/></td> </tr> </logic:iterate> ----------------------------------------------------------------------------------------------- HTML code <tr> <td> <input type="checkbox" name="employee[0].empid" value="7464264327" checked="checked"></td> <td>Employee SSN</td> <td>7464264327 </td> </tr> <tr> <td> </td> <td>Employee Name</th> <td>BARKSDALE,JACK <input type="hidden" name="employee[0].employeename" value="BARKSDALE,JACK"> </td> </tr> <tr> <td > </td> <td >Tier</th> <td >ES <input type="hidden" name="employee[0].tier" value="ES"></td> </tr> <tr> <td> </td> <td>Premium</th> <td>150.00 <input type="hidden" name="employee[0].premium" value="150.00"> </td> </tr> <tr > <td > </td> <td >Reason</td> <td><select id="reason" name="reason"> <option value=""></option></select></td> // This is still under construction </tr> <tr> <td> </td> <td>Termination Date</td> <td><input type="text" name="employee[0].date" value=""> <input type="hidden" name="employee[0].date" value=""></td> </tr> <tr> <td> <input type="checkbox" name="employee[1].empid" value="7464264324" checked="checked"></td> <td>Employee SSN</td> <td>7464264324 </td> </tr> <tr> <td> </td> <td>Employee Name</th> <td>ARBOR,ROBERT B <input type="hidden" name="employee[1].employeename" value="ARBOR,ROBERT B"> </td> </tr> <tr> <td > </td> <td >Tier</th> <td >EMP <input type="hidden" name="employee[1].tier" value="EMP"></td> </tr> <tr> <td> </td> <td>Premium</th> <td>100.00 <input type="hidden" name="employee[1].premium" value="100.00"> </td> </tr> <tr > <td > </td> <td >Reason</td> <td><select id="reason" name="reason"> <option value=""></option></select></td> </tr> <tr> <td> </td> <td>Termination Date</td> <td><input type="text" name="employee[1].date" value=""> <input type="hidden" name="employee[1].date" value=""></td> </tr> ------------------------------------------------------------------------------------------------ Here is the issue >>> when I click on submit >> bean is not get populated >>> as bean not get populated, I can write validation code in validation.xml & require bean get populated with selected check box plus corresponding row also means corresponding employee name , tier , premium & user input date & reason ------------------------------------------------------------------------------------------------ I thought that Struts framework will do this for me. To overcome this I wrote below code in Action class which get call once clicked on submit. Calling below method to populate bean & validation from Action class public void validateForm(DynaValidatorForm dyna, HttpServletRequest request) { int size = ((java.lang.Integer) dyna.get("size")).intValue(); ArrayList ebs = new ArrayList(); for (int i = 0; i < size; i++) { if (request.getParameter("employee[" + i + "].ssn") != null) { com.edocs.application.hbmgrp.appflow.adjustments.EmployeeBean eb = new com.edocs.application.hbmgrp.appflow.adjustments.EmployeeBean(); eb.setDate(request.getParameter("employee[" + i + "].date")); eb.setEmployeename(request.getParameter("employee[" + i + "].employeename")); eb.setPremium(request.getParameter("employee[" + i + "].premium")); eb.setSsn(request.getParameter("employee[" + i + "].ssn")); eb.setTier(request.getParameter("employee[" + i + "].tier")); ebs.add(eb); } } dyna.set("employees", ebs); } ---------------------------------------------------------------------------------------------------- By doing above thing will solve my issue, but I am missing many things here (this is very bad). What I am missing? * Validation by configuration ( in validation.xml) * Populating form by hand. * Above points are related to each other (for validation form require to populate before execute method). Please suggest me steps to solve above issues? ---------------------------------------------------------------------------------------------------- --------------------------------- Do you Yahoo!? Yahoo! Mail - Find what you need with new enhanced search. Learn more.