You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Martin Cooper <ma...@tumbleweed.com> on 2001/03/01 00:37:38 UTC

Re: PLEASE HELP: How would I use the iterate tag here?

You should be able to use nested properties:

<bean:write name="item" property="value.code"/>
<bean:write name="item" property="value.country"/>
<bean:write name="item" property="value.countryName"/>

--
Martin Cooper
Tumbleweed Communications


----- Original Message -----
From: "Shamdasani Nimmi-ANS004" <AN...@motorola.com>
To: <st...@jakarta.apache.org>
Sent: Wednesday, February 28, 2001 2:25 PM
Subject: RE: PLEASE HELP: How would I use the iterate tag here?


> Martin,
>
> According to Craig's email:
> ----------------------------------------------------------------------
> When you iterate over a Hashtable (or any other Map), the elements of
> the iteration are of class "Map.Entry", which has two properties --
> "key" and "value".
>
>     <logic:iterate id="impl" name="loadImpl" property="impl">
>         The curent value is <bean:write name="impl" property="value"/>
>     </logic:iterate>
> ---------------------------------------------------------------------
>
> Since the "value" in my case is of the type SupplierBean how would I get
access to the properties of SupplierBean?
>
> -Nimmi
>
> -----Original Message-----
> From: Martin Cooper [mailto:martin.cooper@tumbleweed.com]
> Sent: Wednesday, February 28, 2001 4:19 PM
> To: struts-user@jakarta.apache.org
> Subject: Re: PLEASE HELP: How would I use the iterate tag here?
>
>
> Yes, there is. See Craig McClanahan's explanation in the archives:
>
> http://www.mail-archive.com/struts-user%40jakarta.apache.org/msg03625.html
>
> Hope this helps.
>
> --
> Martin Cooper
> Tumbleweed Communications
>
> ----- Original Message -----
> From: "Shamdasani Nimmi-ANS004" <AN...@motorola.com>
> To: <st...@jakarta.apache.org>
> Sent: Wednesday, February 28, 2001 2:02 PM
> Subject: RE: PLEASE HELP: How would I use the iterate tag here?
>
>
> > Is there a problem that getSuppliers() method returns a Hashtable and
not
> an ArrayList?
> >
> > -Nimmi
> >
> > -----Original Message-----
> > From: Shamdasani Nimmi-ANS004 [mailto:ANS004@motorola.com]
> > Sent: Wednesday, February 28, 2001 3:59 PM
> > To: 'struts-user@jakarta.apache.org'
> > Subject: RE: PLEASE HELP: How would I use the iterate tag here?
> >
> >
> > Wes,
> >
> > I did try your code(and this is what I was trying before myself too) but
> the table still comes out to be blank whereas if I use the code below the
> supplier rows are displayed. So what's the problem?
> >
> > Anyone else with suggestions?
> >
> > -Nimmi
> > -----Original Message-----
> > From: Wes Hodges [mailto:whodges@fabgear.com]
> > Sent: Wednesday, February 28, 2001 3:51 PM
> > To: struts-user@jakarta.apache.org
> > Subject: RE: PLEASE HELP: How would I use the iterate tag here?
> >
> >
> >
> > > Could someone help me with replacing the JSP code below with
> > > iterate tag <logic:iterate> ? I have tried various permutations
> > > of <logic:iterate> but have been unsuccessful.
> > >
> > > ------------------------------------------------------------------
> > > ---------
> > > <jsp:useBean id="user" scope="session"
> > > type="com.motorola.mms.msqc.beans.UserBean"/>
> > >
> > > <TABLE>
> > > <%
> > > Hashtable hashTable = (Hashtable) user.getSuppliers();
> > > for (Enumeration e = hashTable.elements(); e.hasMoreElements(); )
> > > {
> > >    SupplierBean supplier = (SupplierBean) e.nextElement();
> > > %>
> > > <TR>
> > > <TD ><FONT face = "Arial">supplier.getCode() %></FONT></TD>
> > > <TD><FONT face = "Arial"><%= supplier.getName()
> %></FONT></TD></FONT></TD>
> > > <TD><FONT face = "Arial"><%= supplier.getCountryName() %></FONT></TD>
> > > </TR>
> > >
> > > <% } %>
> > > </TABLE>
> >
> > <table>
> > <logic:iterate id="supplier" name="user" property="suppliers"
> > type="com.full.packagename.for.SupplierBean">
> > <tr><td><font face="Arial"><bean:write name="supplier"
> > property="code"/></td></tr>
> > <tr><td><font face="Arial"><bean:write name="supplier"
> > property="name"/></td></tr>
> > <tr><td><font face="Arial"><bean:write name="supplier"
> > property="countryName"/></td></tr>
> > </tr>
> > </logic:iterate>
> > </table>
> >
> >
> > Be sure to fix the package name in the type attr in logic:iterate.
> > This also assumes that there is an object in the session scope called
> user.
> >
> > Wes
>