java当用户收到错误/验证消息时,如何将其重定向到Spring控制器的成功视图?
我有一点问题,我想不出解决办法
如果用户试图在前一张发票的下载完成之前下载发票,我会向用户显示一条错误消息。发票显示在发票搜索结果列表(即成功视图)中,该列表在用户搜索发票(即表单视图)后显示。在尝试下载发票时,应用程序会通过一个报表控制器,在这里我会检查是否仍在生成以前的发票。如果是,我需要将用户重新引导回“发票搜索结果”页面,并显示一条错误消息。目前,我的重定向正在将它们带回搜索表单(表单视图)。有人知道我如何将他们重定向到结果页面(成功视图)吗?理想情况下,我需要一个通用的解决方案,因为可以从应用程序的其他部分下载其他报告
我们有带Spring3.1的Java7,这部分代码非常古老,因此它使用基于XML的bean配置,而不是注释。如果有人能想出一个更好的解决方案,我们也会非常感激
非常感谢
编辑:只需添加一点细节——如果可能的话,我需要一个通用的解决方案——重定向发生在不同的控制器中,与我尝试重新定向回的控制器不同,因此我没有访问命令类或类似的权限——只有HTTP servlet请求和响应。(我可能已经在这里回答了我自己的问题,因为没有命令对象听起来是不可能的!)
# 1 楼答案
这就是你想要做的 需要将用户重新引导回“发票搜索结果”页面,并显示错误消息。如果他们试图在前一张发票的下载完成之前下载发票
要实现这一点,您必须重定向到创建成功视图的控制器,并且需要包含一条错误消息,您不能直接重定向到视图/jsp,因为这样模型将为空,并且不会显示任何结果
重定向到控制器的代码
在接收控制器中
您可以按以下方式检索错误消息:
在jsp中,您可以显示上面代码中提到的错误消息
# 2 楼答案
结合}
ModelAndView
实现这一点的另一种方法是使用^{例如:
然后在
JSP
中,您可以执行以下操作:# 3 楼答案
您可以使用^{} ,当返回时,您可以通过执行以下操作来决定重定向到何处:
希望有帮助