Должен ли я использовать непосредственно мой класс DAO (например, UserDao) из шаблона тимелеафа? Или я должен использовать обертку (например, UserDaoController) со всеми интересными вызовами в UserDao?Лучшее использование вызовов mvc + thymeleaf
Мой контроллер:
@RequestMapping(value = "/hibernate", method = RequestMethod.GET)
public String listUsers(Model model) {
List<User> listUsers = userDao.list();
model.addAttribute("lista", listUsers);
return "users/users";
}
Я думал об этом, потому что мне нужно сделать 2 выбирает (например, печать все привилегии от каждого пользователя: User -> Роли -> Privilege), и мой последний thymeleaf ужасна:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hibernate</title>
</head>
<body>
<h1>Hibernate - Users</h1>
<body>
<div align="center">
<h1>Users List</h1>
<h2><a href="/hibernate/new">New User</a></h2>
<table border="1">
<th>Id</th>
<th>Username</th>
<th>Email</th>
<th>Roles</th>
<th>Privileges</th>
<th>Actions</th>
<tr th:each="item : ${lista}">
<td th:text="${item.id}"></td>
<td th:text="${item.username}"></td>
<td th:text="${item.email}"></td>
<td>
<ul th:each="role : ${item.getRoles()}">
<li th:text="${role.name}"></li>
</ul>
</td>
<td>
<span th:each="role : ${item.getRoles()}">
<ul th:each="privi : ${role.getPrivileges()}">
<li th:text="${privi.name}"></li>
</ul>
</span>
</td>
<td>
<a th:href="@{/hibernate/edit(id=${item.id})}">Edit</a>
<a th:href="@{/hibernate/delete(id=${item.id})}">Delete</a>
</td>
</tr>
</table>
</div>
</body>
</body>
</html>
Спасибо, Р.