1

我正在使用 Spring Mvc。这里我使用 JSP 作为视图。

我有一种情况,我必须从受另一个控制器约束的表单重定向到另一个受另一个控制器约束的表单

我用过

<c:redirect url="updateStock.ic?appId='${mineralSelect.applicationId}'&serviceId='${mineralSelect.serviceId}'&mineralIdAndName='${mineralList.get(0).mineralId}:${mineralList.get(0).mineralName}'"/>

但是它执行了,但是页面没有渲染。但是在控制台视图中没有异常页面。

4

1 回答 1

1

由于我的评论没有得到答复,因此我将尽我所能在有限的知识范围内为您提供最佳答案。

首先,我认为将重定向放在您的 JSP 中是不好的做法。坦率地说,我认为在 JSP 中放置简单循环和决策分支以外的任何内容都是不好的做法。我会考虑进行重定向的决定是“业务逻辑”决定,而我不会在我的 JSP 中做出决定。Spring MVC 提供了几种在控制器中进行重定向的方法,这具有不在 JSP 中的额外好处,并且可以绕过必须渲染 JSP 来执行重定向。 这篇文章有一些关于如何在控制器中执行重定向的示例。

如果您仍然一心想要在您的 JSP 中进行重定向,那么我建议您使用一些测试工具来查看您是否获得了重定向。Chrome 的开发者工具和 Firefox 的 Firebug 能够报告发送到浏览器的内容。Fiddler 也是处理这些事情的好工具。您正在寻找的是一个 HTTP 3xx 标头,很可能是一个 302,以及您尝试重定向到的 URL。

如果您没有在浏览器中看到 HTTP 3xx 响应,那么是时候进行故障排除了。从以下问题开始:

  1. JSP 是否曾经渲染过
  2. 如果它正在渲染,如果我在重定向周围放置调试语句会发生什么?
  3. 我的重定向是否有一些逻辑导致它甚至没有被执行(调试语句可能会避开这一点)

从尽可能靠近源的地方开始,添加调试打印和日志记录,然后扩展到下一个最宽的区域,直到确定哪些工作正常,哪些工作不正常。

于 2013-03-22T11:50:10.750 回答