Spring boot 重定向时无法传递参数
在我的spring boot应用程序中,当用户是管理员时,我想传递param errorMessage 片段:Spring boot 重定向时无法传递参数,spring-boot,spring-mvc,Spring Boot,Spring Mvc,在我的spring boot应用程序中,当用户是管理员时,我想传递param errorMessage 片段: @Controller public class UsersController { @GetMapping("/users") public String getAllUsers(Model model, RedirectAttributes redirectAttributes) { logger.info("getAllUsers: model = "
@Controller
public class UsersController {
@GetMapping("/users")
public String getAllUsers(Model model, RedirectAttributes redirectAttributes) {
logger.info("getAllUsers: model = " + model + ", redirectAttributes= " + redirectAttributes);
Set<Role> roleSet = new HashSet<>();
roleSet.add(Role.ADMIN);
adminsList = userRepository.findAllByRolesIn(roleSet);
model.addAttribute("usersList", userRepository.findAll());
model.addAttribute("adminsList", adminsList);
model.addAttribute("appName", appName);
return "users";
}
@RequestMapping("user/delete/{id}")
public String deleteUser(@PathVariable("id") int id, RedirectAttributes redirectAttributes) {
logger.info("user_id_to_delete = " + id);
Optional<User> userAdmin = adminsList.stream()
.filter(user -> user.getId() == id)
.findFirst();
if (userAdmin.isPresent() && adminsList.size() == 1) {
String errorMessage = "In system must have at least one administrator";
logger.error(errorMessage);
redirectAttributes.addAttribute("errorMessage", errorMessage);
} else {
userRepository.deleteById(id);
}
return "redirect:/users";
}
成功后,调用方法getAllUsers。但是param redirectAttributes为空。基于api
调用该方法时,重定向属性模型为空,并且
除非该方法返回重定向视图名称或
重定向视图
重定向后,属性将自动添加到的模型中
为目标URL提供服务的控制器
重定向后,errorMessage将在getAllUsers模型中可用。在重定向后,您应该在getAllUsers模型中获得errorMessageredirect@R.G是的,我是从模特那儿买的。谢谢
redirectAttributes.addAttribute("errorMessage", errorMessage);