2011-09-21 107 views
3

我有一个HTML表单,一旦提交按钮被点击,就会提交给Servlet。提交后,Servlet的重定向到一个固定的网址是如何在点击提交后重定向我指向的网址?

http://siteforServlets.com/Servlet/Servlet

该站点随后将显示如下所示的XML报告:

对不起,我不能发表图片没有足够的代表,所以我上传的直接链接在这里: http://img836.imageshack.us/img836/3343/sitea.png

我不希望我的用户感到困惑看到一个XML我喜欢它,去空白页或重定向到一个不同的网址...

如何重定向url以隐藏此xml报表url?

马克,我尝试了你所说的,但它在表单加载之前重定向。以下是我用来演示您的建议的一个快速jsfiddle:jsfiddle.net/ujsEG/12/

+0

是你制作的xml页面还是系统自动生成的? – Astha

+0

它由系统自动生成 – Bulvak

+0

你不能改变那个xml吗?如果您可以首先删除<?xml之类的标签,那么它将成为一个空白页面。 – Astha

回答

5

您可以尝试将表单定位到隐藏的iframe,然后使用JavaScript调用窗口来设置iframe的onload属性。 location.href。

<script type="text/javascript"> 
var okToRedirect = false; 
function redirect() { 
    if (okToRedirect) { 
     window.location.href = 'path/to/new/location'; 
    } 
} 
</script> 

<form action="...some action..." target="MyIframe" onsubmit="okToRedirect = true;"> 
... 
</form> 

<iframe name="MyIframe" style="display: none;" onload="parent.redirect()"></iframe> 

当表单发布后,结果将显示在隐藏的iframe中。一旦iframe完成加载,onload属性将激发javascript以重定向用户。

更新

我更新了我的答案,因为您的评论的。我添加了一个iframe可以调用的JavaScript方法。现在有一个全局变量,它最初设置为false。这将防止页面的第一次加载重定向。当表单帖子,表单上的onsubmit事件将全局变量okToRedirect设置为true时,iframe将重新加载并调用redirect()方法。这一次,重定向将发生。

+0

你说什么我尝试过,但只要表格甚至加载它重定向...甚至不等待表单提交,所以我甚至不能填写表格.. – Bulvak

+0

@Bool蒂姆:你说得对。看起来onload会在iframe首次设置时触发。我会在上面更新我的答案。基本上你需要添加一些JavaScript,只会在提交表单时做重定向。在几个检查... –

+0

@Bool Tim:我更新了答案。或者你可以使用AJAX。 JQuery使这很容易。让我知道你是否需要一个例子。 –