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 使用参数重定向到控制器操作时无法访问重定向属性_Spring_Spring Mvc_Redirect - Fatal编程技术网

Spring 使用参数重定向到控制器操作时无法访问重定向属性

Spring 使用参数重定向到控制器操作时无法访问重定向属性,spring,spring-mvc,redirect,Spring,Spring Mvc,Redirect,在春季MVC 当返回值包含redirect:前缀时,viewsolver将其识别为需要重定向的特殊指示。视图名称的其余部分将被视为重定向URL。客户端将向该重定向URL发送一个新请求 我们可以编写如下处理程序方法来处理重定向: @RequestMapping(value="/foo", method = RequestMethod.POST ) public String foo(HttpServletRequest request, HttpServletResponse response,

在春季MVC

当返回值包含
redirect:
前缀时,
viewsolver
将其识别为需要重定向的特殊指示。视图名称的其余部分将被视为
重定向URL
。客户端将向该重定向URL发送一个新请求

我们可以编写如下处理程序方法来处理重定向:

@RequestMapping(value="/foo", method = RequestMethod.POST )
public String foo(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes)  {
    redirectAttributes.addFlashAttribute("message", "I am message");
    return "redirect:/bar";
}
现在我们可以像这样在
bar()
中访问这个重定向属性

@RequestMapping(value="/bar", method = RequestMethod.GET )
public String bar(HttpServletRequest request, HttpServletResponse response, Model model)  {
    String error = (String) model.asMap().get("message");
}
通常,我们可以通过
bar()
方法中的redirectAttribute来访问这个属性,但是当我在下面的返回语句中指定一个URL作为参数化URL时

return "redirect:/bar?x=1&y=2";
我无法访问重定向属性

我进一步检查了chrome中的网络,发现在返回语句
jsessionid
中使用未参数化的url时,重定向后仍然保持不变,但在使用参数化url时确实会发生变化


有人能告诉我为什么会发生这种情况,或者我在什么地方出错了吗?

如果您想访问重定向控制器中的paramater
x
y
的值,您需要从
请求
获取
参数

@RequestMapping(value="/bar", method = RequestMethod.GET )
  public String bar(HttpServletRequest request, HttpServletResponse response, Model model)  {
      System.out.println(request.getParameter("y"));
      return null;
  }

为什么不尝试调试基于bar的模型方法,以便在使用参数化url时获取接收到的对象?它只显示null。使用未参数化url时一切正常,但参数化url中断。是否能够解决此问题?不,我想访问FlashAttribute error的值。明确提及