it looks like you just need to change your logic:iterate to point to
name="rec" without specifing a property...

jb

----- Original Message -----
From: Raghvendra Sinha <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, July 24, 2001 2:03 PM
Subject: RE: Hot to get the iterated objects ?


>
> > I'm new to struts, I'm trying to use the iterate tag with to retrieve
data
> > from a db and display it. We have the functionality working with our
java
> > classes and now I'm trying to incorporate it using struts. The following
> > code illustrates how we are doing it now.
> >
> > <%
> > try {
> > sai.db.IRecordIterator it =
> > invoiceService.getStatusSummary();
> > while (it.next()!=null) {
> > aig.its.db.RecordInvoice rec =
> > (aig.its.db.RecordInvoice) it.current();
> >
> > %>
> > <td class="ft"><%=rec.getGroupCount ()%></td>
> > <td class="ft">$<%=rec.getGroupSum
> >
(aig.its.db.Tables.Invoice.InvoiceTotal).setScale(2,java.math.BigDecimal.R
> > OUND_DOWN)%></td>
> > </tr><%
> >
> > if (currentSwapColor==0) currentSwapColor=1; else
> > currentSwapColor=0;
> > }
> > }
> > catch (java.sql.SQLException E) {
> > %><%=E.toString()%><%
> > }
> > %>.
> >
> > Now I'm trying to convert the above iteration using the iterate tag of
> > struts, what I've done is this
> >
> >         <%
> > try {
> > sai.db.IRecordIterator it =
> > invoiceService.getStatusSummary();
> >             pageContext.setAttribute("it", it, PageContext.PAGE_SCOPE);
> > while (it.next()!=null) {
> > aig.its.db.RecordInvoice rec =
> > (aig.its.db.RecordInvoice) it.current();
> >                 pageContext.setAttribute("rec", rec,
> > PageContext.PAGE_SCOPE);
> >
> >     %>
> > <logic:iterate id="item" name="it" property="rec">
> >        <tr bgcolor="<%=swapColor[currentSwapColor]%>">
> >         <td align="left">
> >          <bean:write name="rec" property="getGroupCount ()"
> > filter="true"/>
> >         </td>
> >         <td align="left">
> >          <bean:write name="rec" property="getGroupSum
> > (aig.its.db.Tables.Invoice.InvoiceTotal)" filter="true"/>
> >         </td>
> >        </tr>
> > </logic:iterate>
> >
> >         <%
> >
> >         if (currentSwapColor==0) currentSwapColor=1; else
> > currentSwapColor=0;
> > }
> > }
> > catch (java.sql.SQLException E) {
> > %><%=E.toString()%><%
> > }
> > %>
> > .
> >
> > I'm getting the exception
> > javax.servlet.ServletException: No getter method for property rec of
> > bean it.
> >
> > I have no idea where I'm going wrong, but I would appreciate if you
could
> > help me sort this problem out.
> >
> > Another problem that I'm facing is to convert the following to a struts
> > equivalent command, here I guess the jsp is called based on the multiple
> > params passed to it, I couldn't find anything similar in struts. Please
> > help.
> > <td class="ft"><a
> >
href="invoice/list.jsp?numFields=1&wo0=eq&wf0=InvoiceStatus&wv0=<%=rec.get
> > InvoiceStatus()%>"><%=rec.getInvoiceStatusDescription ()%></a></td>
> >
> > B Rgds
> > Raghu
> >
> >
> >
> > -----Original Message-----
> > From: Ted Husted [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, July 23, 2001 4:42 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: Hot to get the iterated objects ?
> >
> >
> > The Struts tags often throw exceptions, but I don't believe any write to
> > a log. They do record the Exception in the request context though, so it
> > can be reported elsewhere (e.g. an JSP error page). Here's an example
> > from interate:
> >
> >    else {
> >     JspException e = new JspException
> >         (messages.getMessage("iterate.iterator"));
> >             RequestUtils.saveException(pageContext, e);
> >             throw e;
> >         }
> >
> > The messages for the exceptions are in <
> > taglib\logic\LocalStrings.properties >.
> >
> > Sorry I could help with committing the indexed tag, but I haven't had a
> > chance to use it myself.
> >
> >
> > [EMAIL PROTECTED] wrote:
> > >
> > > Hi Hal,
> > >
> > > Oleg has siad he will incorporate the tag changes - just mailed him to
> > inquire
> > > when he thinks this will take place (I'm on vacation for 2 weeks from
> > this
> > > Friday).
> > >
> > > Am very happy to insert an exception - wasn't sure how the rest of
> > Struts tags
> > > handle this type of situation.
> > >
> > > Does anyone else have a problem with throwing exception, rather than
> > just
> > > writing to log?
> > >
> > > Cheers,
> > >
> > > Dave
> > >
> > > "Deadman, Hal" <[EMAIL PROTECTED]> on
> > 07/23/2001
> > > 01:14:00 PM
> > >
> > > Please respond to [EMAIL PROTECTED]
> > >
> > > To:   "'Struts Dev List'"
> > <[EMAIL PROTECTED]>
> > > cc:    (bcc: David Hay/Lex/Lexmark)
> > > Subject:  RE: Hot to get the iterated objects ?
> > >
> > > I am looking forward to the seeing indexed tags in the nightly build.
> > Has a
> > > commiter signed up to incorporate the indexed tag changes?
> > >
> > > As for feedback on the code, I don't think it's appropriate to blow
off
> > the
> > > whole tag without comment if the tag with indexed="true" is not nested
> > in an
> > > iterate tag. I think an exception should be thrown instead. If an
> > exception
> > > isn't thrown then something needs to be written to the log file.
> > >
> > > change:
> > >       IterateTag iterateTag = (IterateTag) findAncestorWithClass(this,
> > > IterateTag.class);
> > >       if (iterateTag == null)
> > >       {
> > >          // this tag should only be nested in iteratetag, if it's not,
> > don't
> > > do anything
> > >          return EVAL_PAGE;
> > >       }
> > >
> > > to:
> > >       IterateTag iterateTag = (IterateTag) findAncestorWithClass(this,
> > > IterateTag.class);
> > >       if (iterateTag == null)
> > >       {
> > >          // this tag must only be nested in an IterateTag when indexed
> > > attribute is "true"
> > >         throw new JspException(messages.getMessage("some.messagekey");
> > >       }
> >
>

Reply via email to