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]

Reply via email to