Ahh, notifyTopics.  Sweet, sweet, notifyTopics.

I guess the reason I did not use notifyTopics before
is that I did not understand it.  I now have the
"before" working great, and as soon as I figure out
how to indicate success in the action (guess it is not
just return SUCCESS;) I am sure the "load" will work
fine, too.

Thanks again for the help, Musachy.

Scott

--- Musachy Barroso <[EMAIL PROTECTED]> wrote:

> I should have asked this first, if all you want to
> do is do something before
> the request, why don't you use "notifyTopics"?
> 
> musachy
> 
> //if you really have to hack around reloadContent,
> it is defined here:
> 
>
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js?view=markup
> 
> On 5/3/07, Scott Nesbitt <[EMAIL PROTECTED]>
> wrote:
> >
> >
> > Anybody have a suggestion on this?  Or do I just
> need
> > to wait until the next version of Struts?
> >
> > Thanks,
> >
> > Scott
> >
> > --- Scott Nesbitt <[EMAIL PROTECTED]> wrote:
> >
> > >
> > > Well, I tried this:
> > >
> > > function handler(widget, node)
> > > {
> > >    var beforeTopicsArray =
> > > widget.beforeNotifyTopicsArray;
> > >    widget.beforeNotifyTopicsArray = null;
> > >    widget.reloadContents();
> > >    widget.beforeNotifyTopicsArray =
> > > beforeTopicsArray;
> > > }
> > >
> > > and now I do not get a stack overflow, but the
> > > action
> > > is still not getting called.
> > >
> > > Scott
> > >
> > > --- Musachy Barroso <[EMAIL PROTECTED]> wrote:
> > >
> > > > My bad, the notifyTopics are published inside
> that
> > > > function so it won't
> > > > work. Warning: Hack ahead :)
> > > >
> > > > var beforeTopicsArray =
> > > > widget.beforeNotifyTopicsArray;
> > > > widget.beforeNotifyTopicsArray = null;
> > > > widget.reloadContents();
> > > > widget.beforeNotifyTopicsArray =
> > > beforeTopicsArray;
> > > >
> > > > I will add a "refreshContent" method that will
> be
> > > > common for all of the
> > > > widgets (and part of the api), with one
> > > > parameter(boolean), to skip the
> > > > publishing of the topics.
> > > >
> > > > musachy
> > > >
> > > > On 5/2/07, Scott Nesbitt
> <[EMAIL PROTECTED]>
> > > > wrote:
> > > > >
> > > > >
> > > > > Hmm, this:
> > > > >
> > > > > function handler(widget, node)
> > > > > {
> > > > >    widget.reloadContents();
> > > > > }
> > > > >
> > > > > Gives "Stack overflow at line: 4872"
> > > > >
> > > > > Scott
> > > > >
> > > > > --- Musachy Barroso <[EMAIL PROTECTED]>
> wrote:
> > > > >
> > > > > > If you are using submit, or anchor tag you
> can
> > > > call
> > > > > > "reloadContents()" on
> > > > > > the widget passed as a parameter, if you
> are
> > > > using
> > > > > > the div tag, you can call
> > > > > > "refresh()" on it. These functions are not
> > > > really
> > > > > > part of the api and might
> > > > > > change in the future (although it would be
> > > nice
> > > > if
> > > > > > they were right?).
> > > > > >
> > > > > > musachy
> > > > > >
> > > > > > On 5/2/07, Scott Nesbitt
> > > > <[EMAIL PROTECTED]>
> > > > > > wrote:
> > > > > > >
> > > > > > >
> > > > > > > Yes, I would like to do the request in
> the
> > > > > > JavaScript
> > > > > > > because I need to do some other work
> there
> > > > before
> > > > > > the
> > > > > > > request happens.
> > > > > > >
> > > > > > > If I knew how Struts did the request I
> would
> > > > just
> > > > > > do
> > > > > > > the same thing at the bottom of my
> function.
> > > > > > >
> > > > > > > Scott
> > > > > > >
> > > > > > > --- Musachy Barroso <[EMAIL PROTECTED]>
> > > wrote:
> > > > > > >
> > > > > > > > The whole idea behind the "handler"
> > > function
> > > > is
> > > > > > that
> > > > > > > > you are going to make
> > > > > > > > the request yourself, instead of
> letting
> > > > struts
> > > > > > do
> > > > > > > > it for you. The handler
> > > > > > > > is just a plain javascript function
> like:
> > > > > > > >
> > > > > > > > function superHandler(widget, domNode)
> {
> > > > > > > >   //use some other framework to do the
> > > ajax
> > > > > > request,
> > > > > > > > Dojo, Prototype, YUI,
> > > > > > > > DWR, JQuery,....zillion_framework_name
> > > > > > > > }
> > > > > > > >
> > > > > > > > is that what you are trying to do? do
> the
> > > > > > request
> > > > > > > > yourself?
> > > > > > > >
> > > > > > > > musachy
> > > > > > > >
> > > > > > > > On 5/2/07, Scott Nesbitt
> > > > > > <[EMAIL PROTECTED]>
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > Does anyone know how to invoke a
> request
> > > > from
> > > > > > a
> > > > > > > > submit
> > > > > > > > > handler function?
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I am using a submit tag like this:
> > > > > > > > >
> > > > > > > > > <div id="t1">Div 1</div>
> > > > > > > > > <s:url id="ajaxTest"
> > > > value="SaveLineup.action"
> > > > > > />
> > > > > > > > > <img id="indicator"
> > > > > > > > >      src="images/indicator.gif"
> > > > > > > > >      alt="Loading..."
> > > > > > > > >      style="display:none"/>
> > > > > > > > > <s:submit type="submit"
> > > > > > > > >           theme="ajax"
> > > > > > > > >           value="Save"
> > > > > > > > >           title="Save all changes."
> > > > > > > > >           cssClass="butstylewide"
> > > > > > > > >           targets="t1"
> > > > > > > > >           handler="handler"
> > > > > > > > >           notifyTopics="/after"
> > > > > > > > >           href="%{ajaxTest}"
> > > > > > > > >           align="left"
> > > > > > > > >           indicator="indicator"/>
> > > > > > > > >
> > > > > > > > > My Javascript looks like this:
> > > > > > > > >
> > > > > > > > > function handler(widget, node)
> > > > > > > > > {
> > > > > > > > >    alert("DEBUG in handler");
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > dojo.event.topic.subscribe("/after",
> 
=== message truncated ===



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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

Reply via email to