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" <[EMAIL PROTECTED]>
Reply-To: "Struts Users Mailing List" <user@struts.apache.org>
To: <user@struts.apache.org>
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to