Here's one way to do it: Let's say you want to be able to record the grades of some students across a number of classes.
First define a Bean called StudentGrades: Package example; public StudentGrades { private String name, biology, chemistry, physics, english, math; public String getName () { return this.name; } public String getBiology () { return this.biology; } public String getChemisty () { return this.chemistry; } public String getPhysics () { return this.physics; } public String getEnglish () { return this.english; } public String getMath () { return this.math; } public void setName (String name) { this.name = name; } public void setBiology (String grade) { this.biology = grade; } public void setChemisty (String grade) { this.chemistry = grade; } public void setPhysics (String grade) { this.physics = grade; } public void setEnglish (String grade) { this.english = grade; } public void setMath (String grade) { this.math = grade; } } In your struts-config.xml, define: <form-bean name="studentGradeForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="grades" type="example.StudentGrades[]" size="50"> </form-bean> Then, presuming that your Action populates the StudentGrades array with the student names, in your JSP, you'd say: <html:form action="/some/action"> <TABLE><TR><TD>Name</TD><TD>Biology</TD><TD>Chemistry</TD><TD>Physics</T D><TD>English</TD><TD>Math</TD></TR> <logic:iterate id="student" name="studentGradeForm" property="grades" type="example.StudentGrades"> <logic:notEmpty name="student" property="name"> <TR><TD><bean:write name="student" property="name" indexed="true"/></TD> <TD><html:text name="student" property="biology" indexed="true"/></TD> <TD><html:text name="student" property="chimstry" indexed="true"/></TD> <TD><html:text name="student" property="physics" indexed="true"/></TD> <TD><html:text name="student" property="english" indexed="true"/></TD> <TD><html:text name="student" property="math" indexed="true"/></TD></TR> </logic:notEmpty> </logic:iterate> </TABLE> > -----Original Message----- > From: Mike Ash [mailto:[EMAIL PROTECTED]] > Sent: Thursday, January 02, 2003 5:04 PM > To: 'Struts Users Mailing List' > Subject: RE: multi row / multi col input forms > > > I understand what he is saying about setter methods perhaps I > am not explaining the problem correctly > > The exact example is I am trying to display a listing of a > dynamic number of projects with hours assigned to them by day > for a given week, the user can then update any of those > fields to make changes, some of those fields may be blank > which means the browser will not send them to the server > which puts the rows / cols out of balance. > > I am using the logic iterate tag to build a row which looks like > > someText someMoreText inputBox1 inputBox2 inputBox3 inputBox4 > > So for two rows I get > > someText someMoreText inputBox1 inputBox2 inputBox3 > inputBox4 someText someMoreText inputBox1 inputBox2 > inputBox3 inputBox4 > > This means that from a vertical perspective the boxes have > the same name ( is there a better way to do the names?) If a > inputBox doesn't contain anything I can't tell which one it > really was except which column it "didn't" come from. > > Clear as mud? > > > -----Original Message----- > From: Khalid K. [mailto:[EMAIL PROTECTED]] > Sent: Thursday, January 02, 2003 3:51 PM > To: Struts Users Mailing List > Subject: Re: multi row / multi col input forms > > > please read the post below from Craig....(he answered a > similar question..see question/answer below) > > > > On Thu, 2 Jan 2003, Toni Charlot wrote: > > > Date: Thu, 2 Jan 2003 10:10:32 -0500 > > From: Toni Charlot <[EMAIL PROTECTED]> > > Reply-To: Struts Users Mailing List > <[EMAIL PROTECTED]>, > > [EMAIL PROTECTED] > > To: [EMAIL PROTECTED] > > Subject: REPOST: Forcing the ActionForm to populate a field > before the > > other > > > > I would like to have a setter method called before another. What's > > the best way to do that in the ActionForm > > There are no guarantees on the order that the setters are > called. This is for two reasons: > > * There is no rule in the HTTP or HTML specs defining the order > in which the request parameters are sent, so it's totally up > to the client. And they really do operate differently. > > * There is no rule in the servlet spec saying that the input order > has to be preserved, so it's totally up to the container to decide > how to implement this. And they really do operate differently. > > More fundamentally, though, the only reason that the setter > order would matter is if there are side effects (setting one > property affects the semantics of setting a different one). > Designing your form beans in this way is a very poor > architectural decision -- the whole point of a form bean is > to simply represent the input values that the user actually > entered on the form. Any functionality that tries to assign > "meaning" to these inputs should be done in business logic > (which can pull data out of the form bean in any order that > you need), not in the form bean itself. > > > > > Thank you. > > Craig McClanahan > > > > -- > To unsubscribe, e-mail: > <mailto:struts-user-> [EMAIL PROTECTED]> > For > additional commands, > e-mail: <mailto:[EMAIL PROTECTED]> > > > > ----- Original Message ----- > From: "Mike Ash" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, January 02, 2003 1:46 PM > Subject: multi row / multi col input forms > > > > Is there a way to get the inputs from an html form that has > something > like: > > > > col1 col2 col3 > > row x x x > > row x x x > > row x x x > > > > where x may or may not be entered and the input boxes are > named like > > col1, col2, col3. > > > > So if a user enter a number in row2, col1 and row3, col1 > how to tell > > that > it > > was row 2 and 3 that where entered because hen inputs are named the > > same > the > > parameters come back to the server as an array but there is no > > guarantee which order they were in especially if the first one was > > blank as in this case. The array looks like I had two > entries in col1 > > but the numbers are > in > > position 0, and 1. which they should be in position 1 and 2. > > > > Any thoughts. > > > > > -- > To unsubscribe, e-mail: > <mailto:struts-user-> [EMAIL PROTECTED]> > For > additional commands, > e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>