Struts action call in a JS method returns blank page 2007-02-08 - By Musachy Barroso
Back Check Prototype out, here is a good tutorial: http://www.sergiopereira.com/articles/prototype.js.html, basically what you need is something like:
|**var myAjax = new Ajax.Request( url, { method: 'get', parameters: Form.serialize("formid"), onComplete: function() { //do something here, or not :) } });**|
regards musachy
Christopher Loschen wrote: > I'm not all that familiar with JS, to be honest, and I've never had the > chance to use Ajax (but want to learn). What I have now is working, but > I'd be happy to learn how to do it without refreshing the page -- that > does seem like a more elegant solution to me. What do you suggest? We do > use JS for our app, but no JS framework as such as far as I can tell. > > Chris > > -- --Original Message-- -- > From: Musachy Barroso [mailto:musachy@(protected)] > Sent: Thursday, February 08, 2007 8:03 AM > To: Struts Users Mailing List > Subject: Re: Struts action call in a JS method returns blank page > > Like I said before you can use Ajax to submit the form, and the page > won't > refresh, how to do it depends on what JS framework you are using, if > any. > > regards > musachy > > On 2/8/07, Christopher Loschen <CLoschen@(protected)> wrote: > >> Yes, you're right that the form submit was causing the system to >> > forward > >> to whatever the action said, which in my case was the blank page. >> > You'll see > >> from the later emails in the thread yesterday that I solved that by >> forwarding to the action which populated the original page. >> >> I need the form.submit because I need to get the checked boxes from >> > the > >> form and I need to call the action specified in the action attribute >> > on that > >> form in order to put those checkbox values into the request in the >> > form that > >> my downstream code needs. >> >> Submitting the form is the only way I know to get the form values the >> > user > >> submits from the HTML page to my Java code -- are you saying that I >> > have > >> other alternatives? >> >> Chris >> >> __ ____ ____ ____ ____ ____ ____ >> >> From: Yee Kai Lai [mailto:yeekai.lai@(protected)] >> Sent: Thu 2/8/2007 12:24 AM >> To: user@(protected) >> Subject: RE: Struts action call in a JS method returns blank page >> >> >> >> >> It returns a blank page might be due to >> >> form.submit(); in your JS. >> >> I think if you have a form named >> > 'service.device.selected-devices-form' > >> then >> it will never be null hence it will always submit. >> >> May you could enlightened why u need a form.submit() ? >> >> >> >>> From: "Christopher Loschen" <CLoschen@(protected)> >>> Reply-To: "Struts Users Mailing List" <user@(protected)> >>> To: <user@(protected)> >>> Subject: Struts action call in a JS method returns blank page >>> Date: Wed, 7 Feb 2007 14:14:35 -0500 >>> >>> Hi all, >>> >>> >>> >>> I'm honestly unsure if I'm having a problem with Struts (sadly, 1.1) >>> > or > >>> with Javascript, or something else. But my best guess is it's a >>> > Struts > >>> issue, and anyway, there are a lot of very knowledgeable people on >>> > both > >>> of those technologies here, so I hope someone can help. Bottom line: >>> > I'm > >>> getting the popup with the correct values, but my main page under the >>> popup becomes blank. >>> >>> >>> >>> I'm adding some functionality to an existing application. The >>> functionality I'm adding takes the values from some checkboxes on >>> > page > >>> A, gets the corresponding devices from the checkbox values, and saves >>> the resulting List into the request. Later down the stream, other >>> > code > >>> gets those values again and uses them as a list of devices on which >>> > to > >>> perform an action. Pretty straightforward. >>> >>> >>> >>> All of the actual navigation is happening via Javascript calls, >>> > starting > >>> with a link on page A, but outside the form where my checkboxes are >>> declared. That link fires a Javascript function which pops up a small >>> window with a list of actions which have been defined. If the user >>> > then > >>> clicks on one of those actions, another Javascript function fires >>> > which > >>> pops up another window to confirm that the user wants to perform the >>> selected action on the selected devices. >>> >>> >>> >>> I have inserted my added functionality into that second script. >>> Basically I need to submit the appropriate form on the page. I've >>> defined it with the correct action and I've got a mapping in my >>> struts-config.xml file: >>> >>> >>> >>> <form-bean >>> >>> name="service.device.selected-devices-form" >>> >>> type="com.xxx.webapp.common.CheckboxForm"/> >>> >>> ... >>> >>> <action path="/service/device/actions/store-selected-devices" >>> >>> >>> type="com.xxx.webapp.service.list.StoreSelectedDevicesAction" >>> >>> name="service.device.selected-devices-form" /> >>> >>> >>> >>> The mapping doesn't have any action forwards defined because it >>> > doesn't > >>> actually need to go anywhere (though that might be part of my >>> > problem). > >>> The JS function looks like this: >>> >>> >>> >>> function popActionConfirm(url) { >>> >>> >>> >>> var form = document.forms['service.device.selected-devices-form']; >>> >>> if (form!=null) form.submit(); >>> >>> >>> >>> var winl = (screen.width - 500) / 2; >>> >>> >>> >>> var wint = (screen.height - 350) / 2; >>> >>> >>> >>> winprops = >>> >> 'height=250,width=375,top='+wint+',left='+winl+',scrollbars=0,resizable >> > = > >>> 0'; >>> >>> >>> >>> var child = window.open(url,"action_confirm", winprops); >>> >>> >>> >>> self.name="main_window"; >>> >>> >>> >>> } >>> >>> >>> >>> I added the first two lines of the JS method - it worked correctly >>> before I put those in (though of course it didn't have my added >>> functionality in place). The popup window does appear, and it has the >>> correct values in it (that is, the devices which were selected). But >>> > the > >>> main window goes blank where before it remained unchanged. When I've >>> seen blank pages like this before, it meant there was a bad action >>> forward in the struts-config file, but I don't want the main page to >>> change at all, so what I really want is for the main page to just >>> > stay > >>> in place as it was before the form was submitted. >>> >>> >>> >>> How do I go about doing that? Thanks! >>> >>> >>> >>> Chris Loschen >>> >>> >>> >>> >>> >>> >> __ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ __ >> Receive MSN Hotmail alerts over SMS! >> http://en-asiasms.mobile.msn.com/ac.aspx?cid=1002 >> >> >> -- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ >> To unsubscribe, e-mail: user-unsubscribe@(protected) >> For additional commands, e-mail: user-help@(protected) >> >> >> >> >> > > >
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------ To unsubscribe, e-mail: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
|
|