2014-10-08 54 views
0

我目前正在使用支付网关类型的项目。如果后端发生任何验证错误,首先我想在我的jsp页面(支付网关的)上显示错误消息,并且在10秒钟后,我想从我的jsp将对象(错误代码)分发给商家(商家的网页)页。请求从一个JSP调度到另一个JSP

当前,当我尝试在我的jsp页面中调度并转发时,我的错误消息/ View内容未显示在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>

+0

元重定向? ... – 2014-10-08 13:54:03

+0

我们可以将对象(错误代码)也发送给Meta重定向中的商家页面吗? – jAnA 2014-10-08 14:02:36

回答

2

你不能输出发送到JSP,然后睡线程或东西,Web服务器直到代码执行完毕才会发送输出,因为我们看不到你的代码,我会假设你试图输出错误,睡眠线程,然后发送重定向,所有这一切都会do被写出来,然后立即发送到客户端的重定向。

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

编辑:既然评论格式是怪异: 该servlet是不会等待10秒钟,然后发送重定向,因为所有的处理完成发送响应之前,只有这样,才能发送后的数据越多事实是JavaScript的,或其他一些奇怪的黑魔法,最简单,最优雅的解决办法是这样的:

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

你正在做我以为你是的。你告诉解释器休眠10秒,然后转发客户端,但是,在将输出发送到客户端之前,Web服务器完成执行页面中的所有代码,因此没有延迟,延迟只会使页面花费10秒钟加载 根据[this](http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript)这样的事情应该工作 '<脚本type =“text/javascript”> window.location.replace(“http://yourwebsite.com/merchant.jsp”);' 编辑:评论中的格式很奇怪。 – zack6849 2014-10-09 01:37:33

+0

很好,谢谢。可以通过location.replace()进行分类,并使用javascript形式提交 – jAnA 2014-10-09 03:14:46

相关问题