I will bet one dollar that the amount of time it takes to calculate this
value inside your Action class is less than or equal to the time it takes it
to calculate the value inside the iterator in your JSP.  And it's a
vanishingly small amount compared to network latency.  Unless you're writing
code that's going to be hammered at the requests-per-second scale,
optimizing out a for loop is not the best use of your time as a developer.

When you're doing initial development, optimize in favor of readability and
testability.  Once you're in or close to production, analyze to find
bottlenecks.  Finding the sum of a bunch of values is not going to be your
bottleneck.

jk

On Wed, Jul 1, 2009 at 5:03 PM, Bhaarat Sharma <bhaara...@gmail.com> wrote:

> but if I do it in my action class then I am adding extra 'time'.
> to begin with I anyways have to iterate over the list in my JSP.  Just to
> calculate total if I iterate over the list again in java code then I am
> doing two iterations through the list.  Just didnt seem very efficient for
> my need.
>
> Thanks for your suggestion!! :)
>
>
> On Wed, Jul 1, 2009 at 4:59 PM, Jim Kiley <jhki...@summa-tech.com> wrote:
>
> > I don't know how Struts 2 tags work under the hood, but it's possible
> that
> > it's going out of scope because you declared it in the iterator, or it's
> > silently throwing an error because it isn't initialized.  Before your
> > <s:iterator> starts, do <s:set name="calcTotalDebtAmt" value="0"/>.
> > This could be handled inside your action class with like two lines of
> code,
> > of course, and as a side benefit you could write meaningful unit tests to
> > be
> > sure you'd gotten it right.
> >
> > jk
> >
> > On Wed, Jul 1, 2009 at 4:55 PM, Bhaarat Sharma <bhaara...@gmail.com>
> > wrote:
> >
> > > no :(
> > > I tried the following
> > > <s:iterator value="resultList" status="status">
> > >       <s:text name="number.format"><s:param value =
> > "totalCount"/></s:text>
> > >       <s:set name="calcTotalDebtAmt"
> > > value="%{calcTotalDebtAmt+totalCount}"/>
> > > </s:iterator>
> > >
> > > and tried to print it
> > > <s:property value="#calcTotalDebtAmt"/>
> > >
> > > but it shows nothing :(
> > >
> > > On Wed, Jul 1, 2009 at 4:41 PM, Jim Kiley <jhki...@summa-tech.com>
> > wrote:
> > >
> > > > Does it work if you replace the "+=" with a "+"?
> > > > jk
> > > >
> > > > On Wed, Jul 1, 2009 at 4:39 PM, Bhaarat Sharma <bhaara...@gmail.com>
> > > > wrote:
> > > >
> > > > > Does anyone know how to calculate the total value by making use of
> > the
> > > > > <s:set> tag?
> > > > > On Mon, Jun 29, 2009 at 1:16 PM, Bhaarat Sharma <
> bhaara...@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > for our purpose i'd prefer doing it in the iterator tag.
> > > > > > I tried something like this
> > > > > >
> > > > > > <s:set name="calcTotalDebtAmt"
> > > > > value="%{calcTotalDebtAmt+=totalDebtAmt}"/>
> > > > > >
> > > > > > but this does not seem to work.
> > > > > >
> > > > > > what can fix this?
> > > > > >
> > > > > >
> > > > > > On Mon, Jun 29, 2009 at 12:08 PM, Jim Kiley <
> > jhki...@summa-tech.com
> > > > > >wrote:
> > > > > >
> > > > > >> You're far better off doing it inside the Action class.
> > > > > >> That said, you can probably use s:set to get what you want.
> > > > > >>
> > > > > >> jk
> > > > > >>
> > > > > >> On Mon, Jun 29, 2009 at 12:03 PM, Bhaarat Sharma <
> > > bhaara...@gmail.com
> > > > > >> >wrote:
> > > > > >>
> > > > > >> > Hi,
> > > > > >> > I have a simple iterator tag like the following
> > > > > >> >
> > > > > >> > <s:iterator value="results">
> > > > > >> >
> > > > > >> >    <s:property value="value1"/>
> > > > > >> >
> > > > > >> > </s:iterator>
> > > > > >> >
> > > > > >> > is there a way to get the total of value1 at the end of this
> > > > iterator
> > > > > >> tag?
> > > > > >> >
> > > > > >> > basically in java we would do totalValue += value1; and then
> at
> > > the
> > > > > end
> > > > > >> of
> > > > > >> > the loop we would have total of value1.
> > > > > >> >
> > > > > >> > Is that possible to do with an iterator tag?
> > > > > >> >
> > > > > >>
> > > > > >>
> > > > > >>
> > > > > >> --
> > > > > >> Jim Kiley
> > > > > >> Senior Technical Consultant | Summa
> > > > > >> [p] 412.258.3346
> > > > > >> http://www.summa-tech.com
> > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Jim Kiley
> > > > Senior Technical Consultant | Summa
> > > > [p] 412.258.3346
> > > > http://www.summa-tech.com
> > > >
> > >
> >
> >
> >
> > --
> > Jim Kiley
> > Senior Technical Consultant | Summa
> > [p] 412.258.3346
> > http://www.summa-tech.com
> >
>



-- 
Jim Kiley
Senior Technical Consultant | Summa
[p] 412.258.3346
http://www.summa-tech.com

Reply via email to