Rick Reumann wrote:

Bill Siggelkow wrote:

Okay -- now I am confused -- if I use your approach I get ...

javax.servlet.ServletException: Cannot find bean esami in any scope

I have to specify the name of the form as the value for the 'name' atrribute of logic:iterate


Are you sure you have the iterate taking place inside of (below) <html:form ... > (Been a while since I've used logic:iterate though. Just use the JSTL forEach.. he he I'm telling you, you're the JSTL master:).


Yeah -- the logic:iterate is in the html:form -- though I don't think it really makes a difference -- the iterate tag knows nothing about being in a form. From my experience, using indexed="true" applies the index to the "name" specified for the html:text (or other html:) tag, not the "property" ... therefore, I can only used indexed="true" if I am setting the property of a nested bean that is indexed. I can set the value if the indexed property is a simple type (e.g. a String).


So if I have an indexed property Foo that is a String array than I have to use scriptlet ...
<logic:iterate name="MyForm" property="fooArray" id="foo" indexId="ctr">
<br/><html:text property=’<%="foo["+ctr+"]"%>’/>
</logic:iterate>


This will render
<br/><input type="text" name="foo[0]">
<br/><input type="text" name="foo[1]">
...

However, if the indexed property is itself a bean, say Foo with property Bar, I can use indexed=true

  <logic:iterate name="MyForm" property="fooArray" id="foo">
    <br/><html:text name="foo" property="bar" indexed="true"/>
  </logic:iterate>

This will render
<br/><input type="text" name="foo[0].bar">
<br/><input type="text" name="foo[1].bar">

Bill


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to