thanks for your advice.
"...optimizing out a for loop is not the best use of your time as a
developer."

I second that.  But in this case why would I write another for loop to do
something that can be done in the for loop that I already have?  Unless
there is an issue with doing this inside s:iterator tag, issues like code
readability or amount of time, I thought it would  be better to not write a
method in my action class just for this.

Furthermore, I got to learn something about ognl :)

On Wed, Jul 1, 2009 at 5:08 PM, Jim Kiley <jhki...@summa-tech.com> wrote:

> 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