在spring mvc中将表单重定向到另一个控制器

时间:2013-03-21 10:28:54

标签: spring-mvc

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

我有一种情况,我必须从另一个控制器的形式重定向到另一个受到另一个控制器的形式

我用过

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

但它已被执行,但页面未呈现。但在控制台视图中没有异常页面。

1 个答案:

答案 0 :(得分:1)

由于我没有得到我的评论的答案,我会尝试用尽可能有限的知识给你最好的答案。

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

如果您仍然专注于在JSP中进行重定向,那么我建议您打开一些测试工具,看看您是否正在进行重定向。 Chrome的开发人员工具和Firefox的Firebug可以报告发送到您浏览器的内容。 Fiddler也是这些东西的好工具。您正在寻找的是一个HTTP 3xx标头,很可能是302,其中包含您尝试重定向到的URL。

如果您没有在浏览器中看到HTTP 3xx响应,那么就应该进行故障排除了。首先询问以下内容:

  1. JSP是否始终呈现
  2. 如果是渲染,如果我将调试语句放在我的重定向周围会发生什么?
  3. 我的重定向是否有一些逻辑导致它甚至无法执行(调试语句可能会出现这种情况)
  4. 尽可能靠近源,添加调试打印和记录,然后展开到下一个最宽的区域,直到确定哪些有效,哪些无效。