Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 在SpringMVC中将表单重定向到另一个控制器_Spring Mvc - Fatal编程技术网

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

Spring mvc 在SpringMVC中将表单重定向到另一个控制器,spring-mvc,Spring Mvc,我使用的是SpringMVC,这里我使用JSP作为视图 我有一种情况,在这种情况下,我必须重定向到另一个受另一个控制器控制的形式,从一个受另一个控制器控制的形式 我用过 <c:redirect url="updateStock.ic?appId='${mineralSelect.applicationId}'&serviceId='${mineralSelect.serviceId}'&mineralIdAndName='${mineralList.get(0).miner

我使用的是SpringMVC,这里我使用JSP作为视图

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

我用过

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


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

因为我没有得到我的评论的答案,我将尽可能在有限的知识范围内给你最好的答案

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

如果您仍然一心想在JSP中执行重定向,那么我建议开发一些测试工具,看看您是否得到了重定向。Chrome的开发工具和Firefox的Firebug能够报告发送到浏览器的内容。小提琴手也是处理这些事情的好工具。您要查找的是一个HTTP3xx头,很可能是302,其中包含您试图重定向到的URL

如果在浏览器中看不到HTTP 3xx响应,则是时候进行故障排除了。首先问以下问题:

  • JSP是否曾经呈现过
  • 如果是渲染,如果在重定向周围放置调试语句,会发生什么
  • 我的重定向是否有一些逻辑导致它甚至无法执行(调试语句可能无法执行)

  • 从尽可能靠近源代码的地方开始,添加调试打印和日志记录,然后扩展到下一个最宽的区域,直到您确定哪些是有效的,哪些是无效的。

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

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

    如果您仍然一心想在JSP中执行重定向,那么我建议开发一些测试工具,看看您是否得到了重定向。Chrome的开发工具和Firefox的Firebug能够报告发送到浏览器的内容。小提琴手也是处理这些事情的好工具。您要查找的是一个HTTP3xx头,很可能是302,其中包含您试图重定向到的URL

    如果在浏览器中看不到HTTP 3xx响应,则是时候进行故障排除了。首先问以下问题:

  • JSP是否曾经呈现过
  • 如果是渲染,如果在重定向周围放置调试语句,会发生什么
  • 我的重定向是否有一些逻辑导致它甚至无法执行(调试语句可能无法执行)

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

    尝试将日志级别设置为调试(我假设您使用的是某种日志框架…),并检查日志。通常,会有一个错误提示。我可以问一下为什么在JSP中而不是在控制器中执行重定向吗?尝试将日志级别设置为debug(我假设您使用的是某种日志框架…),并检查日志。通常,会有一个错误提示。我可以问一下为什么在JSP中而不是在控制器中执行重定向吗?