Re: Struts tag <logic:iterate>
From: Martin (mbierwirth_at_gmx.de)
Date: 05/19/04
- Next message: Chris Uppal: "Re: Determining Calling Class"
- Previous message: David Alex Lamb: "comp.lang.java.{help,programmer} - what they're for (mini-FAQ 2002-12-28)"
- In reply to: Jack_A: "Struts tag <logic:iterate>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 19 May 2004 02:33:10 -0700
bom-ba@mail.ru (Jack_A) wrote in message news:<306b3106.0405180517.201084e9@posting.google.com>...
> Hello!
> I have a problem with struts tag <logic:iterate>
>
> There is a bean TestBean.java contains array of some class (e.g. B)
> and class B also contains array of some class (e.g. C)
>
> public class B{
> private C[] arrayC;
> public B(int n){
> arrayC = new C[n];
> int j;
> for(j = 0;j<n; j++){
> arrayC[j] = new C();
> }
> }
> public C[] getArrayC() { return arrayC;}
> public C getArrayC(int index) { return arrayC[index];}
> }
>
> public class TestBean {
> private B[] arrayB;
> public TestBean(int n){
> arrayB = new B[n];
> int j;
> for(j = 0;j<n; j++){
> arrayB[j] = new B(n);
> }
> }
> public B[] getArrayB() { return arrayB;}
> public B getArrayB(int index) { return arrayB[index];}
> }
>
> There is some code of jsp page:
>
> <%TestBean testBean = new TestBean(5);
> session.setAttribute("testBean", testBean);
> %>
> <table>
> <logic:iterate id="test" name="testBean" property="arrayB"
> indexId="i"
> scope="session">
> <tr>
> <td align="right"><html:text name='test'
> property="array"/>
> <logic:iterate id="test2" name="test"
> property="arrayC" indexId="j">
> <td align="right"><html:text name='test2'
> property="fielsOfClassC"/>
> </logic:iterate>
> <tr />
> </logic:iterate>
> </table>
>
> I try to iterate each element of arrayC, which is element of arrayB
> (which I try to iterate too) :-).
> But "[ServletException in:/testApp/test.jsp] Cannot create iterator
> for this collection'"
>
> Sorry if I wasn't very clear.
>
> Can anyone give me some advice?
I quickly simulated your example, and I didn't get this "cannot create
iterator..."-message. First, I received other errors: I had to import
the B- and C-class, then I got "no getter method...". So I specified
the property-type to iterate over:
<logic:iterate id="test" name="testBean" property="arrayB"
scope="request" type="B">
<tr>
<td>Row...</td>
<logic:iterate id="test2" name="test" property="arrayC" type="C">
<td align="right"><bean:write name="test2"
property="ceProperty"/>
</logic:iterate>
<tr />
</logic:iterate>
That's it. I had a simple String-variable "hello" with a getter-method
in C, and voila: a 5x5-matrix filled with hellos.
Try this. If it doesn't work, then post some more details (code of
class C, J2EE-environment, etc).
Good luck!
Martin
- Next message: Chris Uppal: "Re: Determining Calling Class"
- Previous message: David Alex Lamb: "comp.lang.java.{help,programmer} - what they're for (mini-FAQ 2002-12-28)"
- In reply to: Jack_A: "Struts tag <logic:iterate>"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|