Я работаю над своим первым проектом Spring MVC, и я застрял в проблеме.В моем приложении 3 типа пользователей: администратор, сотрудник и клиент.В зависимости от типа пользователя, я хотел бы иметь определенный тип меню для каждого из них.Я попытался использовать оператор switch в своем шаблоне тимелиста, но каждый случай включается в вывод, и я не понимаю, почему.
Это код моего метода в контроллере:
@RequestMapping(value = "list/{roleId}", method = RequestMethod.GET)
public String listFood(Model model, @PathVariable int roleId){
model.addAttribute("title", "Available Foods");
model.addAttribute("roleId", roleId);
model.addAttribute("foods", foodDao.findAll());
return "food/list";
}
И это код из шаблона Thymeleaf (каждый фрагмент будет включен в итоговую страницу):
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head th:replace="fragments :: head"></head>
<body class="container">
<h1 th:text="${title}">Food</h1>
<div th:switch="${roleId}">
<p th:case="0"><nav th:replace="admin-fragments :: navigation"></nav></p>
<p th:case="1"><nav th:replace="employee-fragments :: navigation"></nav></p>
<p th:case="2"><nav th:replace="customer-fragments :: navigation"></nav></p>
</div>
</body>
</html>
Однако, если я изменю шаблон на следующий, тогда будет только правильный регистрвключены в итоговую страницу.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head th:replace="fragments :: head"></head>
<body class="container">
<h1 th:text="${title}">Food</h1>
<div th:switch="${roleId}">
<p th:case="0">User is an administrator</p>
<p th:case="1">User is an employee</p>
<p th:case="2">User is a customer</p>
</div>
</body>
</html>
Почему переключение с первого шаблона не ведет себя так же, как переключение во втором шаблоне?Что я должен изменить в первом шаблоне, чтобы иметь возможность персонализированного меню для каждого типа пользователей?Спасибо!