Spring Boot перенаправляет на другой URL

В моем весеннем проекте загрузки я хотел сделать перенаправление с http://localhost:8080 на http://localhost:8080/birdspotting. Это код домашнего контроллера:

@RestController
public class HomeController {

    @GetMapping("/")
    public String showHomePage() {
        return "redirect:/birdspotting";
    }
}

Результатом перехода на http://localhost:8080 является вывод redirect:/birdspotting.

используйте @Controller вместо @RestController.

M. Deinum 21.12.2020 11:35
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Интеграция Slack и Spring Boot: как отправлять сообщения из Java-приложений
Интеграция Slack и Spring Boot: как отправлять сообщения из Java-приложений
Как отправлять сообщения в slack с помощью spring boot легко и без зависимостей.
0
1
4 443
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны создать другую конечную точку, например:

    @GetMapping("/")
    public String showHomePage() {
        return "redirect:/birdspotting";
    }

    @GetMapping("/birdspotting")
    public String birdspottingPage() {
        return "birdspotting";
    }

Ожидается, что в ваших шаблонах есть birdspotting.html.

Ответ принят как подходящий

В основном RestController = Controller + RequestBody

Который отправит ответ json, но мы ожидаем, что преобразователь представления вернет страницу или URL-адрес перенаправления.

Поэтому используйте @Controller вместо @RestController, чтобы решить эту проблему.

Обновлять:

Если вы хотите использовать оба в одном контроллере, используйте @Controller на уровне класса, а затем везде, где вы хотите вернуть ответ на вызов API, поместите @ResponseBody в метод, и везде, где вы хотите вернуть страницу веб-браузера, не ставьте @ResponseBody.

Как я могу поступить, если мне нужно иметь и то, и другое? Я имею в виду ответ в случае вызова API и перенаправление в случае просмотра веб-страниц?

Iñigo Bereciartua 23.12.2020 01:03

Обновлен ответ ... дайте мне знать для дальнейшего разъяснения.

Alien 23.12.2020 04:13

Другие вопросы по теме