springboot中controller如何向另一层controller传值
时间: 2023-10-13 15:10:35 浏览: 171
在Spring Boot中,Controller层经常需要向Service层传递参数或对象。下面列举两种传递参数或对象的方式:
1. 使用@Autowired注解注入Service层对象,然后调用Service层方法,并将参数传递给Service层方法。
```
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/getUserById")
public String getUserById(@RequestParam("userId") Integer userId, Model model) {
User user = userService.getUserById(userId);
model.addAttribute("user", user);
return "user/userDetail";
}
}
```
2. 使用@RequestMapping注解的“forward:”或“redirect:”前缀将请求转发或重定向到另一个Controller层方法,并将参数传递给该方法。
```
@Controller
public class UserController {
@RequestMapping("/getUserById")
public String getUserById(@RequestParam("userId") Integer userId, Model model) {
model.addAttribute("userId", userId);
return "forward:/userDetail";
}
}
@Controller
public class UserDetailController {
@Autowired
private UserService userService;
@RequestMapping("/userDetail")
public String userDetail(@RequestParam("userId") Integer userId, Model model) {
User user = userService.getUserById(userId);
model.addAttribute("user", user);
return "user/userDetail";
}
}
```
这样,第一个方法中的请求将被转发到第二个方法中,同时将userId参数传递给第二个方法。第二个方法将根据这个参数获取User对象,并将其添加到Model中,最后返回user/userDetail视图。
阅读全文