redirectAttributes
时间: 2024-01-12 20:04:50 浏览: 27
`RedirectAttributes` 是 Spring MVC 框架中的一个接口,用于重定向请求时传递数据。
通常情况下,当我们在一个处理器方法中处理完请求后,需要将结果数据传递给另一个处理器方法,然后再进行重定向。而 `RedirectAttributes` 就是为了方便在重定向时传递数据而设计的。
使用 `RedirectAttributes` 可以通过 `addAttribute()` 方法将数据添加到 URL 的查询参数中,或者通过 `addFlashAttribute()` 方法将数据存储到 Flash 作用域中。在重定向之后,这些数据可以在目标处理器方法中使用。
举个例子,以下代码演示了如何在一个处理器方法中使用 `RedirectAttributes` 进行重定向并传递数据:
```java
@RequestMapping("/processForm")
public String processForm(RedirectAttributes redirectAttributes) {
// 处理请求...
// 添加数据到 URL 的查询参数中
redirectAttributes.addAttribute("message", "Data has been processed successfully!");
// 添加数据到 Flash 作用域中
redirectAttributes.addFlashAttribute("status", "success");
return "redirect:/result";
}
@RequestMapping("/result")
public String showResult(@RequestParam("message") String message, Model model) {
model.addAttribute("message", message);
// 显示结果页面...
return "result";
}
```
在上面的例子中,`processForm()` 方法处理完请求后,通过 `redirectAttributes.addAttribute()` 方法将 "message" 参数添加到重定向 URL 的查询参数中,同时通过 `redirectAttributes.addFlashAttribute()` 方法将 "status" 属性存储到 Flash 作用域中。然后,返回 "redirect:/result" 实现重定向到 `/result` 请求。
在目标处理方法 `showResult()` 中,通过 `@RequestParam` 注解将 "message" 参数绑定到方法参数中,然后将其添加到模型中,最终在结果页面中显示。
这样,我们就可以在重定向请求中传递数据,并在目标处理方法中使用了。