javascript - 请求从一个 JSP 分派(dispatch)到另一个 JSP

标签 javascript spring jsp spring-mvc

我目前正在从事支付网关类型的项目。如果后端发生任何验证错误,首先我想在我的jsp页面(支付网关的)上显示错误消息,10秒后我想从我的jsp将对象(错误代码)分派(dispatch)到商家(商家的网页)页。

目前,当我尝试在 jsp 页面中调度和转发时,我的错误消息/查看内容未显示在 jsp 中。它不会显示我的错误消息,而是等待 10 秒并将对象转发给商家。因为我希望我不会通过执行调度来在我的 jsp 中提交请求/响应对象。如果我错了请纠正我。

请给我建议一个处理这种情况的好方法吗?

我正在尝试在我的 jsp 页面中执行此操作..

</head>
<body>
<form:form method="post"  commandName="item">
 <form:errors path="*" cssClass="errorblock" element="div" />
 
 <tr>
<td>Response Code :</td><td>${item.responseCode}</td>

<%="test" %>
</tr>
<%
Thread.sleep(10000); // sleep 10 seconds
RequestDispatcher rd = request.getRequestDispatcher("/merchant.jsp");
 //rd.include(request, response);
rd.forward(request, response);
%>
</body>

最佳答案

你不能将输出发送到jsp,然后休眠线程或其他东西,网络服务器在代码执行完成之前不会发送输出,因为我们看不到你的代码,我假设您试图输出错误,休眠线程,然后发送重定向,所要做的就是将其写出来,然后在发送到客户端时立即发送重定向。

您最好的选择可能是使用 JavaScript 在您将客户端重定向到的页面上发送重定向以显示错误。

编辑:因为评论格式很奇怪: servlet 不会等待 10 秒然后发送重定向,因为所有处理都是在发送响应之前完成的,事后发送更多数据的唯一方法是 javascript,或者其他一些奇怪的黑魔法,最简单的最优雅的解决方案是这样的:

<script type="text/javascript">
    window.location.replace("http://yourwebsite.com/merchant.jsp"); 
</script>

关于javascript - 请求从一个 JSP 分派(dispatch)到另一个 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258634/

相关文章:

javascript - 单击复选框后显示/隐藏表格行

java - 将 Gradle.build 版本导入 Spring Boot

Spring AOP target() 与 this()

javascript onblur/onfocus 函数不工作

javascript - p5.j​​s 如何改变文字粗细(变小)?

java - Spring Controller 不通过RequestBody或RequestParam接收文件

java - 通过java调用 Crystal 报表

java - 无法显示隐式 EL(表达式语言)范围对象

java - JSP 中如何使用 .do 文件在 Java 和 Struts 框架之外的前端 Web 表单之间传递数据?

javascript - 更改正则表达式以仅接受指定字符?