2010-06-03 49 views
0

我將一個(jsp)表單提交給一個Servlet A.然後我處理一些邏輯,使提交成功或失敗。在執行Servlet邏輯之後,我使用jquery的ajaxForm()函數將用戶重定向到不同的jsp。但在重定向發生之前,我需要顯示一個javascript通知,顯示提交是否成功。有人能告訴我我該怎麼做?如何從一個servlet調用一個javascript函數?

+1

有您考慮將響應存儲在用戶的服務器端會話中,讓servlet重定向到新的JSP並獲取新的頁面以將響應顯示爲其常規內容的一部分?如果您打算髮出重定向並進行頁面刷新(因此AJAX的使用沒有實際意義),那麼爲什麼當用戶在下一頁上閃動警報時強制用戶單擊警告框或其他內容?只是我的0.02美元。 – 2010-06-03 12:04:13

回答

2

使用success回調處理程序。只要servlet返回響應,就會調用它。您可以訪問返回的響應作爲回調處理程序中的第一個參數。最簡單的辦法是讓這個servlet返回JSON響應,以便您可以訪問它作爲一個JavaScript對象:

$('#formId').ajaxForm({ 
    dataType: 'json', 
    success: function(response, status, xhr) { 
     if (response.error) { 
      alert('Something failed: ' + response.error); 
     } else { 
      alert('Submit was successful.'); 
      window.location = 'newpage.jsp'; 
     } 
    } 
}); 

在servlet需要返回響應類似爲:

response.setContentType("application/json"); 
response.setCharacterEncoding("UTF-8"); 
if (submit was not successful) { 
    response.getWriter().write("{ error: '" + message + "' }"); 
} else { 
    response.getWriter().write("{ error: false }"); 
} 
+0

感謝您的回答。但我需要的是與此稍有不同。如果後端操作失敗,我想顯示不同的消息。 (失敗是指用戶錯誤) 任何想法? – sanjayav 2010-06-03 11:37:01

+0

我更新了答案。 – BalusC 2010-06-03 11:55:56

+0

我試過了,它完全符合我的要求。非常感謝你再次! – sanjayav 2010-06-04 18:29:59

相關問題