Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Перенаправление на string, если метод контроллера ResponseEntity  [new]
Samoogn
Member

Откуда:
Сообщений: 12
Доброе время суток
есть метод

@RequestMapping(value = "login", method = RequestMethod.POST)
    public ResponseEntity<String> loginUser(Model model, HttpSession session,@RequestBody User user) {
        try {
            if (session.getAttribute("user") != null)
               return new ResponseEntity<>("the user is already logged in", HttpStatus.BAD_REQUEST);
            user = userService.loginUser(user.getPhone(), user.getPassword());
            session.setAttribute("user", user);
            model.addAttribute("user", user);
            return "MyProfile";
        } catch (UserNotFoundException e) {
            return new ResponseEntity<>(e.getMessage(), HttpStatus.NOT_FOUND);
        } catch (InternalServerException e) {
            return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
        } catch (BadRequestException e) {
            return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
        }
    }

и мне нужно что бы в случае удачного логина пользователя перенаправляло на страницу MyProfile, в противном случае выскакивал бы нужный HttpStatus
проблема в том что так как метод возвращает ResponseEntity<String> я не знаю как мне вернуть String "MyProfile"
20 окт 19, 22:08    [21998505]     Ответить | Цитировать Сообщить модератору
 Re: Перенаправление на string, если метод контроллера ResponseEntity  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Samoogn,
Вообще то делают в случае удачного логина переход на ту страницу которую запросил юзверь.
То есть кликнул он на ярлык рабочего стола с
https://www.sql.ru/forum/1318292/
Значит после логина переход именно туда.
20 окт 19, 22:25    [21998519]     Ответить | Цитировать Сообщить модератору
 Re: Перенаправление на string, если метод контроллера ResponseEntity  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Samoogn,
Либу по аутентификации от EE / Spring не хотите?
20 окт 19, 22:27    [21998521]     Ответить | Цитировать Сообщить модератору
 Re: Перенаправление на string, если метод контроллера ResponseEntity  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4923
Samoogn
Доброе время суток
есть метод


и мне нужно что бы в случае удачного логина пользователя перенаправляло на страницу MyProfile, в противном случае выскакивал бы нужный HttpStatus
проблема в том что так как метод возвращает ResponseEntity<String> я не знаю как мне вернуть String "MyProfile"


Э-э-э вообще то ResponseEntity это для возвращения json (или xml) объекта.
Для перенаправления/открытия страницы нужно возвращать ModelView.
Где-то с 3 или 4 версии Spring, в Spring MVC можно возвращать не объект ModelView, а строковую константу с именем представления (View).

Так что вам нужно изменить тип функции. Лучше указать явно ModelView. Т.к. в зависимсоти от настроек и подключенных/не подключенных зависимостей результат для String может отличаться.
21 окт 19, 05:59    [21998572]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить