如何从servlet调用javascript函数?

时间:2010-06-03 09:00:17

标签: jquery jsp servlets

我将一个(jsp)表单提交给Servlet A.然后我处理一些逻辑,这会使提交成功或失败。我使用jquery的ajaxForm()函数在执行Servlet逻辑后将用户重定向到不同的jsp。但在此重定向发生之前,我需要显示一个javascript通知,显示提交是否成功。有人能告诉我怎么能这样做?

1 个答案:

答案 0 :(得分: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 }");
}