struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shamdasani Nimmi-ANS004 <ANS...@motorola.com>
Subject RE: Question about iterate tag
Date Thu, 01 Mar 2001 19:46:30 GMT
Craig had suggested that I use:

<bean:write name="supplier" property="value.seq_nbr" scope="page"/>

but unfortunately it is not working.

-----Original Message-----
From: Matt Ho [mailto:matt@xtreme.com]
Sent: Thursday, March 01, 2001 12:27 PM
To: struts-user@jakarta.apache.org
Subject: RE: Question about iterate tag


> I did try this way but it still does not work. Since
> supplier.value is of type SupplierBean, do I have to specify that
> anywhere?

I believe you want the bean to be SupplierBean rather than Supplier.  Your
request

	<bean:write name="supplier" property="value.seq_nbr" scope="page"/>

seems like it would get translated into

	out.print( String.valueOf(supplier.getValue().seq_nbr) );

or something akin to that which is Not At All what you're looking for.

M
> ------------------------------------------------------
> <jsp:useBean id="user" scope="session"
> type="com.motorola.mms.msqc.beans.UserBean"/>
>
> <TABLE>
>
> <logic:iterate id="supplier" name="user" property="suppliers" >
>
> <TR>
> <TD><bean:write name="supplier" property="value.seq_nbr"
> scope="page"/></TD>
> <TD><bean:write name="supplier" property="value.name" scope="page"/></TD>
> <TD><bean:write name="supplier" property="value.countryName"
> scope="page"/></TD>
> </TR>
>
> </logic:iterate>
>
> </TABLE>
> -----------------------------------------------------
> but this code which I am trying to replace with tags works:
>
> <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>
>
> -----Original Message-----
> From: Craig R. McClanahan [mailto:Craig.McClanahan@eng.sun.com]
> Sent: Wednesday, February 28, 2001 11:30 PM
> To: struts-user@jakarta.apache.org
> Subject: Re: Question about iterate tag
>
>
> Shamdasani Nimmi-ANS004 wrote:
>
> > Hi,
> >
> > Could someone please tell me what I am doing wrong below:
> >
> > user is a bean in session scope in my JSP and its
> getSuppliers() method returns a hashtable where keys are
> Suppliers Ids and elements are Supplier beans.
> >
> > <logic:iterate collection="<%= user.getSuppliers() %>"
> id="supplier" type="com.motorola.mms.msqc.beans.SupplierBean">
> >
> > <TR>
> > <TD><bean:write name="supplier" property="seq_nbr" scope="page" /></TD>
> > <TD><bean:write name="supplier" property="name" scope="page" /></TD>
> > <TD><bean:write name="supplier" property="country_name"
> scope="page" /></TD>
> > </TR>
> >
> > </logic:iterate>
> >
>
> When you iterate over a Hashtable (or any other implementation of
> the Map interface), the object get for the "id" variable is
> actually an implementation of
> the "Map.Entry" class, not the class of the value of the bean.
> From this "Map.Entry" instance, however, you can easily get to
> the real information:
>
>     <bean:write name="supplier" property="value.seq_nbr" scope="page"/>
>
> This works because a MapEntry has two properties -- key and value
> -- so we are using the nested property syntax to effectively call
> getValue().getSeq_nbr().
>
> >
> > Thanks in advance.
> >
> > -Nimmi
>
> Craig
>

Mime
View raw message