[prev in list] [next in list] [prev in thread] [next in thread] 

List:       struts-user
Subject:    Re: [S2] Newbie Passing S2 variables to javascript functions
From:       Laurie Harper <laurie () holoweb ! net>
Date:       2007-04-30 17:32:01
Message-ID: f1597j$6kl$1 () sea ! gmane ! org
[Download RAW message or body]

Again, though, bear in mind that the <s:proprty/> tag will be evaluated 
on the server during page generation whereas the Javascript will be 
executed later, on the client, after the page is delivered.

There's no way to 'interact with the action stack in Javascript', since 
the action stack only exists during page generation and the Javascript 
runs later.

That said, techniques like the one Musachy shows below, or the previous 
examples, *will* allow you to push data from the action stack into your 
scripts at page generation time. You just can't dynamically reference 
the action stack 'live' from Javascript.

 >> all the expressions are passed as a string, there's no evaluation of
 >> the expression. Which, now you've explained that Javascript executes

I'm not sure what you mean here; the only thing you can 'pass' is a 
Javascript literal, but that could be a string, integer, even an object 
literal. Just remember that you're generating code, so whatever you 
generate has to be syntactically valid when the browser comes to run it.

If this is all still unclear, maybe you can describe what you are trying 
to achieve in a little more detail.

L.

Musachy Barroso wrote:
> <script>
>   // call the function passing the index
>   myFunction(<s:property value="#indexValue" /> )
> 
> </script>
> 
> just make sure the "indexValue" is available when you use it.
> 
> musachy
> 
> On 4/30/07, Roger Varley <roger.varley@googlemail.com> wrote:
>>
>> > Without seeing the error and the JSP code that generated it, it's hard
>> > to tell you what's wrong. However, remember that Javascript runs on the
>> > client, after the page has been generated. View the page source to see
>> > what the syntax error is. In this case, it's probably the lack of 
>> quotes
>> > around the OGNL expression. It may also be that an in-line expression
>> > like that wont work.
>> >
>> > Here's a couple of suggestions to try:
>> >
>> >      ... onclick="enableField('%{#indexValue}')" ...
>> >      ... onclick="%{'enableField(\'' + #indexValue + '\')'}" ...
>> >      ... onclick="enableField('${indexValue}')" ...
>> >
>>
>> I've tried all your suggested variations, but looking at the source,
>> all the expressions are passed as a string, there's no evaluation of
>> the expression. Which, now you've explained that Javascript executes
>> on the client makes sense. So the question becomes is it possible to
>> interact with the action stack in Javascript?
>>
>> Regards
>> Roger
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic