Вернуть HTML-страницу с Spring Controller

Итак, видимо, я пытаюсь вернуть HTML-файл с помощью контроллера Spring.

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

1.

@RequestMapping ("/")
@ResponseBody
public String homeDisplay() {
    return "homepage";
}
@Controller
public class HomeController {

@RequestMapping ("/")
public ModelAndView index () {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("homepage");
    return modelAndView;
}
}

Во всяком случае, не помогло, я получаю страницу ошибки Whitelabel.

Страница ошибки Whitelabel Это приложение не имеет явного сопоставления для /error, поэтому вы рассматриваете это как запасной вариант. Вс 13 декабря 20:14:04 EET 2020 Произошла непредвиденная ошибка (тип=Не найдено, статус=404). Нет доступных сообщений

Как я могу исправить это и отобразить нужный мне HTML.

В чем именно вопрос?

MehranB 13.12.2020 19:09

Вопрос - как исправить проблему и отобразить нужный мне html файл.

Pandora 13.12.2020 19:15

Добро пожаловать в СО. Постарайтесь предоставить как можно больше релевантной информации. В вашем проекте может быть много проблем. Здесь в SO нет никакой магии. :-) В этом случае покажите структуру вашего проекта. Изображение может быть.! Также покажите свой pom/gradle.

Ajay Kumar 13.12.2020 21:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
1 023
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте заменить @RequestMapping на @GetMapping("/") или @RequestMapping(value = "/", method = RequestMethod.GET)

Почему? потому что @RequestMapping будет отображаться на любой запрос к этому URL-адресу, поэтому вы должны указать, что это запрос GET (я полагаю, это то, что вы хотите использовать).

Поскольку вы не предоставили код внешнего интерфейса, который отправляет запрос, мы не можем сказать, есть ли там проблема. Пожалуйста, поделитесь им.

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

Я столкнулся с аналогичной проблемой, когда пытался отобразить домашнюю страницу для REST API, который я создавал. Однако в проекте нет Thymeleaf. Я использовал следующее, и это сработало для меня. Следующий код делает файл home.html, хранящийся в resources/static, отображаемым при запуске приложения. Это статическая страница, и на нее не отправляются никакие данные.

@Controller
public class HomeController {

    @RequestMapping("/")
    public String welcome() throws Exception {
        return "home.html"; //note that this says .html
    }
}

Для проекта, в котором я использовал Thymeleaf, у меня есть следующий код, который показывает страницу входа в систему, хранящуюся в папке ресурсов/шаблонов.

@Controller
public class LoginController {

    @GetMapping("/login")
    public String showLoginForm() {
        return "login"; //note that this is just the name of the file with no extension
    }
}

Обязательно поместите html-файл в правильную папку. Я предполагаю, что, поскольку вы используете Thymeleaf, вы, вероятно, будете использовать некоторые шаблоны.

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