RedirectAttributes
时间: 2024-01-12 22:04:08 浏览: 114
RedirectAttributes是Spring MVC中的一个接口,它是用来在重定向时传递参数的。
在Spring MVC中,重定向是通过返回redirect:前缀的视图名称来实现的。例如,如果我们要重定向到一个名为“/home”的URL,并且想要传递一个名为“message”的参数,我们可以这样写:
```java
return "redirect:/home?message=Hello";
```
但是,如果我们想要在重定向时传递一个对象或多个参数,就需要使用RedirectAttributes了。RedirectAttributes提供了一些方法来添加Flash属性,这些属性在重定向之后仍然可以访问。例如,我们可以这样写:
```java
@GetMapping("/example")
public String example(RedirectAttributes ra) {
MyObject obj = new MyObject();
obj.setName("John");
obj.setAge(30);
ra.addFlashAttribute("myObj", obj);
ra.addAttribute("message", "Hello");
return "redirect:/home";
}
```
在上面的代码中,我们将一个名为“myObj”的对象添加到Flash属性中,并将一个名为“message”的普通属性添加到URL中。在重定向之后,我们可以通过Flash属性来访问对象,如下所示:
```java
@GetMapping("/home")
public String home(@ModelAttribute("myObj") MyObject obj, @RequestParam("message") String message) {
System.out.println(message); // 输出:Hello
System.out.println(obj.getName()); // 输出:John
System.out.println(obj.getAge()); // 输出:30
return "home";
}
```
需要注意的是,Flash属性只能在访问一次之后被清除,所以它们通常用于在重定向之后显示一些消息或操作结果。
阅读全文