Enrique,

You should consider putting that on the Wiki.


On 2/23/06, Enrique Medina <[EMAIL PROTECTED]> wrote:
> Finally I solved all my problems ;-)
>
> Thinks to take into account:
>
> 1) Return null should work (see the thread) --> For me it wasn't working due
> to a side-effect problem. If it doesn't then use an array to define buttons
> that must be ajaxed (see thread)
> 2) VERY IMPORTANT --> Define the AAFilter as being the first filter in your
> chain --> This was the cause of all my problems with NULL pointer exception
> --> At least it MUST be the first one when another ServletResponse wrapper
> is in the game (as was happening with the ExtensionsFilter response wrapper)
> 3) If you're using Firefox, download the script debugger to see what's
> happening with JS behind the scenes ;-) You will find lots of interesting
> stuff, like preprocessors to the Ajax request, for example ;-)
> 4) Don't use redirect in the navigation rules, or the Ajax request will be
> simply bypassed
>
> Hope it helps to clarify the use of Ajaxanywhere with Myfaces.
>
> Thanks to anyone that has given me any kind of support with this issue, and
> thanks very much to guys like Vitaliy for giving us tools like this
> fantastic Ajaxanywhere :-)
>
> 2006/2/23, Enrique Medina <[EMAIL PROTECTED]>:
> > Sorry, you were right...
> >
> > I've tried it and it works great, but there are some cases where I get a
> NullPointerException when clicking the ajaxed button. But then I click it
> again, and it works!!! Debugging through your code, I see that when the
> cause why the exception is thrown is due to a call to the internal writer
> object of your BufferedResponseWrapper class, which is null. But it is not
> null for the second request on the same button... I'm missing something...
> >
> > By the way, using your proposal, should I continue using the
> ajaxAnywhere.getZonesToReload?
> >
> > Thanks very much for your support ;-)
> >
> >
> > 2006/2/23, Vitaliy Shevchuk < [EMAIL PROTECTED]>:
> >
> > >
> > > it IS the other way round ;) read carefuly my message
> > >
> > >
> ajaxAnywhere.substituteSubmitButtonsBehavior(true,[ajaxAnywhere.findForm().elements['mainForm:selectBoxBtn']]);
> // <-- arrays of "ajaxed" buttons
> > >
> > >
> > > ----- Original Message -----
> > > From: Enrique Medina
> > >
> > > To: Vitaliy Shevchuk
> > > Cc: MyFaces Discussion ; [EMAIL PROTECTED] ; [EMAIL PROTECTED]
> ; [EMAIL PROTECTED] ; [EMAIL PROTECTED] ;
> [EMAIL PROTECTED]
> > > Sent: Thursday, February 23, 2006 8:38 AM
> > > Subject: Re: Ajaxanywhere
> > >
> > > Hi Vitaliy,
> > >
> > > Then you mean that buttons that are not Ajaxed must be passed as
> argument to the substituteSubmitButtonsBehaviour? I though
> it was the other way round; i.e. arrays of "ajaxed" buttons...
> > >
> > >
> > > 2006/2/22, Vitaliy Shevchuk <[EMAIL PROTECTED]>:
> > > >
> > > > Hi guys,
> > > >
> > > > first of all, sorry for not providing a proper support on AjaxAnywhere
> forum. I have been doing it for over 4 months but don't have much of free
> time now.
> > > >
> > > > The first solution for your problem is to specify a list of Ajaxed
> buttons when calling substituteSubmitButtonsBehavior. So
> other buttons would stay
> > > > For "all2.jsf" from the DEMO application it would look like this :
> > > >
> ajaxAnywhere.substituteSubmitButtonsBehavior(true,[ajaxAnywhere.findForm().elements['mainForm:selectBoxBtn']]);
> > > >
> > > > then, if you add a second command button
> > > >     <h:commandButton action="#{carconf.calcPrice}" value="Calc No
> AJAX" id="selectBoxBtn_nonAJAX" />
> > > > it would work without Ajax.
> > > >
> > > > some doc is available here
> http://ajaxanywhere.sourceforge.net/js_docs_out/AjaxAnywhere.html#substituteSubmitButtonsBehavior
>
> > > >
> > > > Vitaliy.
> > > >
> > > > PS. Indeed, there are several bugs discovered here and I need to fix
> them. It should work when returning null from getZonesToRefresh(), next
> release will fix it.
> > > > PPS. for the navigation to another page when submitting with AA, did
> you try "redirect" parameter in JSF config? I'm not sure but it should work,
> as response.sendRedirect() is interpreted as location.href=".." on the
> client side.
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Enrique Medina
> > > > To: MyFaces Discussion ; [EMAIL PROTECTED] ;
> [EMAIL PROTECTED] ; [EMAIL PROTECTED] ; [EMAIL PROTECTED] ;
> [EMAIL PROTECTED] ; [EMAIL PROTECTED] ;
> [EMAIL PROTECTED]
> > > > Sent: Tuesday, February 21, 2006 9:45 PM
> > > > Subject: Re: Ajaxanywhere
> > > >
> > > > And more testing...
> > > >
> > > > I have downloaded the DEMO from the Ajaxanywhere site, and made a
> change on the facesFrame.jsp to make the "Calculate price" button
> non-ajaxed. And it does not work; i.e. if I quit the "Calculate price" from
> the ajaxed zones, then the action is never executed.
> > > >
> > > > From my experience, Ajaxanywhere does not work with a page combining
> ajaxed and non-ajaxed JSF actions.
> > > >
> > > >
> > > > 2006/2/21, Enrique Medina <[EMAIL PROTECTED] >:
> > > > > Definetively, I can't make it work. I've created a simple JSF page
> with two buttons: one is a save for the form and the other just navigates to
> another page (simulating a cancel action). The save button works great, but
> when I press the cancel/exit button, then nothing happens.
> > > > >
> > > > > I've been also doing some debugging, and when using Ajaxanywhere,
> the submit of the non-ajaxed button does not update the parameterRequestMap
> used after to decide whether it is an immediate request, etc.
> > > > >
> > > > > No idea of what I'm doing wrong....
> > > > >
> > > > > Emmanuel can you please help? Can you provide some of your JSF
> pages? What version are you using? Are you working with buttons?
> > > > >
> > > > > Thanks.
> > > > >
> > > > >
> > > > >
> > > > > 2006/2/21, Enrique Medina < [EMAIL PROTECTED]>:
> > > > > > Some more testing...
> > > > > >
> > > > > > If I remove all the JS I posted before, then the common JSF button
> works, and obviously my ajaxed zone is ignored and the page is completely
> refresehd; if I add it again, then the common JSF does not work, and
> obviously the ajxed zone works great.
> > > > > >
> > > > > > It's clear the problem comes with the JS and how does Ajaxanywhere
> handle the request...
> > > > > >
> > > > > >
> > > > > > 2006/2/21, Enrique Medina < [EMAIL PROTECTED] >:
> > > > > >
> > > > > > > Hi again,
> > > > > > >
> > > > > > > I have tried the solution you proposed about returning null for
> non-ajaxed requests, but I can't get it to work :-(
> > > > > > >
> > > > > > > Here is my JS code:
> > > > > > >
> > > > > > > ajaxAnywhere.getZonesToReload = function(url, submitButton)
> > > > > > >                 {
> > > > > > >                     if (typeof submitButton != 'undefined')
> > > > > > >                     {
> > > > > > >                         if (submitButton.type == 'submit')
> > > > > > >                         {
> > > > > > >                             if (
> submitButton.id.search('botonAjax') != -1)
> > > > > > >                             {
> > > > > > >                                 return 'variablesSalidaList';
> > > > > > >                             }
> > > > > > >                         }
> > > > > > >                     }
> > > > > > >
> > > > > > >                     return null;
> > > > > > >                 }
> > > > > > >
> > > > > > >                 ajaxAnywhere.formName = 'bodySubview:mainForm';
> > > > > > >
> ajaxAnywhere.substituteFormSubmitFunction ();
> > > > > > >
> ajaxAnywhere.substituteSubmitButtonsBehavior(true);
> > > > > > >
> > > > > > > As you can see, I evaluate the ID of the submitButton to be
> something like *botonAjax*, so I can differentiate from the other buttons.
> And in any other case, I always return null. But when I press a button out
> of the ajaxed zone, it simply does nothing (well, the request is made, and
> the page is refreshed, but no navigation to the new page).
> > > > > > >
> > > > > > > Any ideas of what could I be doing wrong? I'm convinced that
> maybe my problem has something to be with the JS code... or maybe not...
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 2006/2/21, Emmanuel Jay < [EMAIL PROTECTED]>:
> > > > > > > > Yes our app has ajaxed and non ajaxed part. For example some
> parts can't be ajaxed at all, such as the part using the fileUpload
> component (as well as any get operation for that matter).
> > > > > > > >
> > > > > > > > Yes i use the link id to determine whether it is an Ajax
> request or not. Basically for a link it is:
> > > > > > > >
> > > > > > > > var linkFrom =
> this.findForm().elements["mainForm:_link_hidden_"].value;
> > > > > > > >
> > > > > > > > P.S. I have my own problem with AA, seems that the
> dataScroller doesn't work well with AA (if you ever come accross that case
> I'll be glad to hear if you manage to solve it!)
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2/21/06, Enrique Medina < [EMAIL PROTECTED]> wrote:
> > > > > > > > > Umm, I see. So your application has JSF pages with parts
> "ajaxed" and other parts, as usual JSF requests, don't you? I'll try it and
> let you know whether it finally works or not.
> > > > > > > > >
> > > > > > > > > By the way, just for the sake of confirmation, is your JS
> code similar to mine? I mean, do you use the button or link ID to determine
> whether it's an "ajaxed" request or not?
> > > > > > > > >
> > > > > > > > > Thanks very much for your support.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > 2006/2/21, Emmanuel Jay < [EMAIL PROTECTED]>:
> > > > > > > > > > I think the AA filter is totally by passed if the list of
> zones to reload is null (getZonesToReload returns null). In our app we
> mostly have links and returning null works fine.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > On 2/21/06, Enrique Medina < [EMAIL PROTECTED]> wrote:
> > > > > > > > > > > Null? I remember some tests returning '' and getting a
> NullPointerException. What should be the reason why returning NULL should
> work?
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > 2006/2/21, Emmanuel Jay < [EMAIL PROTECTED]>:
> > > > > > > > > > >
> > > > > > > > > > > > Hi Enrique,
> > > > > > > > > > > >
> > > > > > > > > > > > If you want you button or link action not to go
> through AA you have to return null for those in  getZonesToReload.
> > > > > > > > > > > >
> > > > > > > > > > > > Hope that helps,
> > > > > > > > > > > >
> > > > > > > > > > > > Emmanuel
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > On 2/21/06, Enrique Medina < [EMAIL PROTECTED]>
> wrote:
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Has anyone successfully used Ajaxanywhere inside a
> JSF page with a piece of the page being "ajaxed" and the other piece not?
> Let me give an example: imagine a JSF page where the selection of a combo
> box must force the refresh of another combo box. This zone is "ajaxed" using
> <aa:zoneJSF>. But buttons to save or go to another page in the navigation
> are not "ajaxed".
> > > > > > > > > > > > >
> > > > > > > > > > > > > My problem is that the "ajaxed" zone works great,
> but then I have a button to save, and another one to navigate to another
> page, and those buttons don't seem to work. When I click them a request is
> sended, but none of their respective actions are executed, no error messages
> are shown (I have a global tag in the page). It seems like a request with an
> action returning simply null (not doing anything).
> > > > > > > > > > > > >
> > > > > > > > > > > > > My Javascript for Ajaxanywhere looks like this:
> > > > > > > > > > > > >
> > > > > > > > > > > > > ajaxAnywhere.getZonesToReload =
> function(url,submitButton)
> > > > > > > > > > > > > {
> > > > > > > > > > > > >     if (submitButton.id.equals('myAjaxButton')
> > > > > > > > > > > > >         return "dataZone";
> > > > > > > > > > > > > }
> > > > > > > > > > > > >
> > > > > > > > > > > > > ajaxAnywhere.formName = "mainForm";
> > > > > > > > > > > > >
> ajaxAnywhere.substituteFormSubmitFunction();
> > > > > > > > > > > > >
> ajaxAnywhere.substituteSubmitButtonsBehavior(true);
> > > > > > > > > > > > >
> > > > > > > > > > > > > What am I doing wrong? How do you have to indicate
> non-ajaxed buttons in the getZonesToReload Javascript callback?
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

Reply via email to