but in this document
http://struts.apache.org/2.1.6/docs/iterator.html
id attribute is deprecated.

Louis


________________________________
From: Chris Pratt <thechrispr...@gmail.com>
To: Struts Users Mailing List <user@struts.apache.org>
Sent: Wednesday, August 5, 2009 4:54:31 PM
Subject: Re: struts2 ognl confusion

You must be using a fairly old version of Struts 2.  The difference between
the ${} and the # versions is that the ${} is a JSTL EL expression that is
no longer allowed inside struts (s:) tags for security reasons.  The #
version is OGNL and references the variable that Wes tried to define.  Try
using the id attribute instead of the var attribute.  So something more like
this:

<s:iterator value="%{questions}" status="status" id="question">
   <s:if test='%{incorrectQs.contains(#question.questionId)}'>
        <div style="color: red; padding-bottom: 5px;">Print Something</div>
    </s:if>
</s:iterator>

I like to make it obvious which attributes use OGNL by enclosing them in %{}
  (*Chris*)

On Wed, Aug 5, 2009 at 8:43 AM, Bhaarat Sharma <bhaara...@gmail.com> wrote:

> oh and attribute 'var' seems to be invalid according to the TLD
>
> On Wed, Aug 5, 2009 at 11:42 AM, Bhaarat Sharma <bhaara...@gmail.com>
> wrote:
>
> > ok thanks Wes. yeah that is def. more readable.
> > could you please tell me what the difference is in doing
> >     <s:if test='incorrectQs.contains("${questionId}")'>
> > VS.
> >     <s:if test='incorrectQs.contains(#question.questionId)'>
> >
> > beside the question.questionId part. I am more concerned about difference
> > in '$' vs. '#'
> >
> >
> > On Wed, Aug 5, 2009 at 11:39 AM, Wes Wannemacher <w...@wantii.com>
> wrote:
> >
> >> I think this would be more readable -
> >>
> >> <s:iterator value="questions" status="status" var="question">
> >>    <s:if test='incorrectQs.contains(#question.questionId)'>
> >>         <div style="color: red; padding-bottom: 5px;">Print
> >> Something</div>
> >>     </s:if>
> >> </s:iterator>
> >>
> >> -Wes
> >>
> >> On Wed, Aug 5, 2009 at 11:35 AM, Bhaarat Sharma<bhaara...@gmail.com>
> >> wrote:
> >> > I have the following code in a jsp
> >> > Line1: <s:iterator value="questions" status="status">
> >> > Line2:    <s:if test='incorrectQs.contains("${questionId}")'>
> >> > Line3:        <div style="color: red; padding-bottom: 5px;">Print
> >> > Something</div>
> >> > Line4:    </s:if>
> >> > Line5:</s:iterator>
> >> >
> >> > On Line1 questions is a list.  This list contains object of class
> Exam.
> >> > Class Exam has a getter/setter questionId
> >> > On Line2 incorrectQs is a list.  This list contains strings.
> >> >
> >> > I am checking to see if list in Line2 contains a questionId that is in
> >> > questions list on line1.
> >> >
> >> > Is this the best way to do this?
> >> >
> >> > the code seems to be working but 'randomly' sometimes Line2 never
> seems
> >> to
> >> > be true ...when we know it IS true.
> >> >
> >> > I just want to make sure with some experienced people whether this is
> >> the
> >> > way to achieve this?
> >> >
> >>
> >>
> >>
> >> --
> >> Wes Wannemacher
> >>
> >> Head Engineer, WanTii, Inc.
> >> Need Training? Struts, Spring, Maven, Tomcat...
> >> Ask me for a quote!
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> For additional commands, e-mail: user-h...@struts.apache.org
> >>
> >>
> >
>

Reply via email to