Редирект на весеннюю загрузку - PullRequest
0 голосов
/ 27 апреля 2019

Я написал систему входа в систему при Spring-Boot, но есть проблема, когда я хочу войти в систему, Spring берет логин и пароль из формы, но не может перенаправить на страницу учетной записи.

Контроллер

Ошибка

 @PostMapping(value = "user/login")
public String login(Model model, HttpSession session, @RequestParam("login") String login, @RequestParam("password") String password) {
    try {
        User user = userService.checkLogin(login, password);
        if (user == null) {
            model.addAttribute("err", "Login Valid login and password");
            return "/login";
        } else {
            if (user.getRole().equals(userService.Role_Admin)) {
                userService.addUserInSession(user, session);

                return "/admin/account";
            } else if (user.getRole().equals(userService.Role_Student)) {
                userService.addUserInSession(user, session);
                return "/student/account";
            } else {
                model.addAttribute("err", "Invalid User Role");
                return "/login";
            }
        } } catch (UserException ex) {
        model.addAttribute("err", ex.getMessage());
        return "/login";
    }

}

Ответы [ 3 ]

0 голосов
/ 27 апреля 2019

Во-первых, вам нужно заменить @PostMapping на @RequestMapping, чтобы разрешить как POST, так и GET запросы.Ваш запрос на вход - это запрос POST, а перенаправление - запрос GET.Во-вторых, перенаправления в весенней загрузке имеют префикс redirect:/.Поэтому ваш код перенаправления должен выглядеть так:

return "redirect:/admin/account"
0 голосов
/ 27 апреля 2019

Я уже исправил, но есть проблема, он перенаправляет на страницу администратора, но не может показать содержимое соответствующей страницы

0 голосов
/ 27 апреля 2019

Сначала вы должны использовать redirect префикс:

//...
return "redirect:/admin/account";
// ...
return "redirect:/student/account";

Подробнее здесь: https://www.baeldung.com/spring-redirect-and-forward

Второе - из ваших скриншотов - я увидел, что ваш контроллер настроен на обработкуPOST запросов, но вы отправили GET запрос из браузера: localhost: 8080 / user / login? Login = isi & password = test

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...