Dustin,

Thanks - I would swear I had tried it before as you suggested. But I did it
one more time and its working great!

Thanks again.


> From: Dustin Pearce <[EMAIL PROTECTED]>
> Reply-To: <users@appfuse.dev.java.net>
> Date: Mon, 7 Apr 2008 16:10:00 -0700
> To: <users@appfuse.dev.java.net>
> Subject: Re: [appfuse-user] Struts2 "s:if" tag comparisons and OGNL
> 
> I think it is an issue where you think you need to pass a string to
> disabled, presumably because you expect to see a <.....
> disabled="true"/> out in the HTML.
> 
> Well it turns out that the disabled switch expects a boolean switch
> rather than pass through text.  So that helps a little:
> 
> <s:set name="protect" value="%{true}"/>
> 
> But in Struts2/WebWork the tags will try to evaluate things by default
> so you can drop the curly braces and just write:
> 
> <s:set name="protect" value="true"/>
> 
> The same syntax sugar is true for your textfield so:
> 
> <s:textfield ....  disabled="%{protect}"/>
> 
> is the same as
> 
> <s:textfield ....  disabled="protect"/>
> 
> The use of the # symbol can get confusing, and its most commonly used
> to change the "root" of the context.  By default you are on the value
> stack where all the actions "getters" are available.  If you want to
> change that context to page or session, then you need to use the
> preceding #session, #page etc.   There are other cases when you are
> inside if an  iterator where the context shifts down to the current
> object in the iteration.  You want to get out of the loop back to the
> main context so you see things like #top.xxx inside the loop.
> 
> I wish I knew the hard fast rules for the OGNL syntax magic.  My
> suggestion is if its just variable names and scalar values then the %
> {} is not needed.  If you want to assemble a hash in OGNL for a select
> or something heavier like that then you will need the %{ }.
> 
> 
> -Dusty
> 
> On Apr 5, 2008, at 2:54 PM, Richard M wrote:
> 
>> 
>> I've read and re-read the Struts2 guides on OGNL and the Struts2
>> tags (and
>> the OGNL web site guide to comparisons).
>> 
>> Problem: I wanted to protect fields on a form if the user was not the
>> "owner" of the domain object.
>> My approach was going to be to test that the form was either:
>> a) empty, so a new instance was being created so fields should not be
>> protected.
>> b) the remoteUser was the same as the "owner" of the existing
>> object, again
>> no protection needed.
>> c) Otherwise I wanted to "disable" all of the form fields and just
>> allow the
>> data to be viewed.
>> 
>> I looked at the example of the Appfuse userForm.jsp and found an
>> example
>> "s:if" statement that appeared like it should be a basis for this to
>> work.
>> It was:
>> 
>>  <s:if test="ticket.id == null | ticket.owner.username ==
>> #request['remoteUser']">
>>      <s:set name="protect" value="%{'false'}"/>
>>  </s:if>
>>  <s:else>
>>      <s:set name="protect" value="%{'true'}"/>
>>  </s:else>
>>    ...
>>  <s:textfield id="..." disabled="protect"/>
>> 
>> 
>> Well this did not work as expected. I tried numerous combinations,
>> including
>> disabled="#protect". I never could get it to work right. I've ended up
>> reverting back to regular JSTL c:if tags, but using these in
>> combination
>> with s:if tags appears to not work consistently.
>> 
>> Any ideas on how to do this would be greatly appreciated. I've been
>> working
>> with an appfuse/struts-resume app for over five years. For a new app
>> we are
>> doing, we decided it was time to move to Maven, Appfuse 2.0, Struts2,
>> Spring. The code is so much cleaner, but the learning curve on a
>> couple of
>> things has really bit me hard!
>> -- 
>> View this message in context:
>> http://www.nabble.com/Struts2-%22s%3Aif%22-tag-comparisons-and-OGNL-tp1651843
>> 4s2369p16518434.html
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to