В моем весеннем загрузочном приложении я хочу передать параметр errorMessage
, когда пользователь является администратором.
фрагмент:
@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";
}
после попытки удалить пользователя (метод deleteUser
) успешно вызов
redirectAttributes.addAttribute("errorMessage", errorMessage);
И после этого успешного вызова метода getAllUsers
. Но параметр redirectAttributes
пуст.