If "${index}" is not evaluating, then this is not a Struts problem. It's an issue with the container you're using and your configuration of it.
For instance, you appear to say you're using Struts-EL. Do you have the correct taglib directives to use Struts-EL as opposed to Struts? What container are you using? > -----Original Message----- > From: Victor Grazi [mailto:[EMAIL PROTECTED] > > We are trying to use <logic:iterate> in a JSP to access items > in a list stored in the Form Bean by the Action class but we > can't seem to get the syntax right. > > I am getting an error meessage from PropertyUtils that > displays the index as '${index}', which indicates that that > struts el expression is not resolving to an int. > > Here is my exact syntax. The form and action are described in > more detail below. > > <html:form action="/test"> > <logic:iterate id="lineItem" indexId="index" > name="testForm" property="list"> > > <!-- display the index counter for the fun of > it. This works ok --> > <bean:write name="index" /><br> > > <!-- now access the id of the indexth element > of the list > --> > <bean:write name="list[${index}].id" /><br> > > <!-- now access the description of the indexth > element of > the list --> > <html:text property="list[${index}].description" > onchange="changefield(this);"/><br> > <html:hidden property="isChanged[${index}]" /><br> > > </logic:iterate> > <html:submit>Send</html:submit> > </html:form> > > I have created several Test classes to help me understand the flow... > > The form is an instance of TestForm exends ActionForm and its > form name in struts-config.xml is "testForm". (This is the > named form for the action.) TestForm has one property: > java.util.List list with accessors public List > getList() and public void setList(List list). > > List is always a List of LineItem objects where LineItem is a > simple JavaBean with properties String id (public String > getId() and public void setId(String id)), String description > (public String getDescription() and public void > setDescription(String description)) and boolean isChanged > (public void setIsChanged(boolean value) and public boolean > getIsChanged() ) > > The Action (TestAction extends Action) "execute" method > creates a List of 5 LineItem objects and stores that List > into the form by calling ((TestForm)form).setList(list), then > forwards to the jsp (test.jsp) > > In the jsp I would like to iterate through the list to perform the > following: > display the id (as html read-only text) and the > description (as html:text) of each line item, > then use JavaScript to change the "isChanged" property (in a > hidden field) when the onchange event is triggered. > > I have tried several different syntaxes. I also tried using > arrays instead of List's. I also specified the type of the > LineItem class explicitly in the form element. I tried each > of the "html:" and "bean:write" lines above one at a time to > see if any would be successful, but they all produce that > same error. I have combed the web for a good example of how > to accomplish this, but I couldn't find anything that handled > things in a way that would work for us. > > Can you tell me what I am doing wrong and how to accomplish > the access? > > Thanks/Victor > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]