2011-09-21 49 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使這很容易。讓我知道你是否需要一個例子。 –