Блок Switch или If не выполняет блок по условию, а обрабатывает все блоки подряд
<!-- Main Content -->
<main class="main">
<div th:switch="${contentName}">
<div th:case="'home'" th:replace="~{fragments/contents/home_content :: home_content}"></div>
<div th:case="'about'" th:replace="~{fragments/contents/about_content :: about_content}"></div>
<div th:case="'courses'" th:replace="~{fragments/contents/courses_content :: courses_content}"></div>
<div th:case="'trainers'" th:replace="~{fragments/contents/trainer_content :: trainer_content}"></div>
<div th:case="'events'" th:replace="~{fragments/contents/event_content :: event_content}"></div>
<div th:case="'contact'" th:replace="~{fragments/contents/contact_content :: contact_content}"></div>
<div th:case="*">Контент не найден</div>
</div>
</main>
Мой switch, а так же if вызывает все контенты подряд но мне бы хотелось чтобы он вызвал конкретный по условию блок. Вот мой контроллер:
@Controller
public class PageController {
@GetMapping("/")
public String homePage(Model model) {
model.addAttribute("pageTitle", "Home");
model.addAttribute("contentName", "home");
return "main";
}
@GetMapping("about")
public String aboutPage(Model model) {
model.addAttribute("pageTitle", "About Us");
model.addAttribute("pageDescription", "Описание... которое я добавлю позже...");
model.addAttribute("contentName", "about");
return "main";
}
@GetMapping("courses")
public String coursesPage(Model model) {
model.addAttribute("pageTitle", "Courses");
model.addAttribute("pageDescription", "Описание... которое я добавлю позже...");
model.addAttribute("contentName", "courses");
return "main";
}
@GetMapping("trainers")
public String trainersPage(Model model) {
model.addAttribute("pageTitle", "Trainers");
model.addAttribute("pageDescription", "Описание... которое я добавлю позже...");
model.addAttribute("contentName", "trainers");
return "main";
}
@GetMapping("events")
public String eventsPage(Model model) {
model.addAttribute("pageTitle", "Events");
model.addAttribute("pageDescription", "Описание... которое я добавлю позже...");
model.addAttribute("contentName", "events");
return "main";
}
@GetMapping("contact")
public String contactPage(Model model) {
model.addAttribute("pageTitle", "Contact");
model.addAttribute("pageDescription", "Описание... которое я добавлю позже...");
model.addAttribute("contentName", "contact");
return "main";
}
}
Каждый контент я проверил, в коде нет не единой ошибки, ни лишней точки с запятой, ни его отсутствие. ChatGPT так же не видит ошибки. Я решил проблема с Thymeleaf, но я всё уже сделал и обновил и всё остальное. Я не знаю html5 может проблема в этом, поэтому решил написать сюда.
Источник: Stack Overflow на русском