struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Struts Wiki] Update of "StrutsWebService" by MichaelJouravlev
Date Tue, 18 Jul 2006 04:30:25 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification.

The following page has been changed by MichaelJouravlev:
http://wiki.apache.org/struts/StrutsWebService

The comment on the change is:
Removed Changing Form Target in Action? stuff.

------------------------------------------------------------------------------
  
  All these details, and plenty more, as well as full source, are available at the linked
address above.  I welcome any suggestions anyone has.  Although I haven't done much on this
in a while (because it met my needs as-is), I would love to continue this work if enough people
find it useful.
  
- 5. Simply put, there is no way to do this.  Opening a new window is a strictly client-side
activity.  You have to "fake it".  There's two ways to do it...
- 
- First, you could simply target your HTML form using the target="_blank" attribute.  This
will result in whatever response the server sends back appearing in a new window.  The down-side
to this is you have to know before-hand to do this.  If you want a variable solution, you
have to get into scripting... You can set the target attribute's value via client-side scripting
as appropiate before submitting the form.
- 
- Second, you could have a check in all JSP's that looks for some flag in the request object.
 When present, the JSP inserts an onLoad Javascript event handler that opens the new window
and redirects to the URL where the content can be found.
- 
- Another possibility if you are using frames is to target all form submissions to a hidden
frame.  Include in all pages some Javascript that performs some checks and handles things
accordingly... I use this in one system I wrote... The checks I'm speaking of are based on
some flag value in the request object (just insert the value into a page-level Javascript
variable)... The flag may direct the page to copy itself to the main display frame, or to
a new window.  The former is a very nice way to have a "Please Wait" screen while the server
is processing.  The later is the same basic idea, but in a new window.  This also allows you
to do some nice error handling things, such as simply hiding the Please Wait layer in the
main frame to expose the page as it existed before the form was submitted.  Nice way to debuild
a page without incurring any server time.  But now I'm getting off on a tangent :)
- 
- The bottom-line here is this: There is no way to direct the browser to open the response
in a new window from an Action.  You either have to indicate you want this behavior when the
form is submitted, or make it happen with scripting once the response is back at the browser.
 At least, this is true within the confines of plain old HTML... You could always pull an
applet out and do something like this!
- 

Mime
View raw message