2010-06-03 72 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

相关问题