Я очень новичок в этом, поэтому будьте добры. У меня есть таблица «пользователи» в моей базе данных, и каждый пользователь является частью команды. Я пытался отобразить всех пользователей в разных таблицах на основе названия их команды.
Это код в моем UserService:
public List<User> getUsersFromFirstTeam() {
List<User> usersFromFirstTeam = userRepository.findByTeam(FIRST_TEAM);
return usersFromFirstTeam;
}
public List<User> getUsersFromSecondTeam() {
List<User> usersFromSecondTeam = userRepository.findByTeam(SECOND_TEAM);
return usersFromSecondTeam;
}
Это код в моем UserController:
@Autowired
private UserService userService;
@GetMapping(value = "/admin/usermanagement")
public ModelAndView userManagement(Model firstTeamModel, Model secondTeamModel) {
ModelAndView modelAndView = new ModelAndView();
firstTeamModel.addAttribute("firstTeamUsers", userService.getUsersFromFirstTeam());
secondTeamModel.addAttribute("secondTeamUsers", userService.getUsersFromSecondTeam());
modelAndView.setViewName("userManagement");
return modelAndView;
}
И, наконец, это моя страница .jsp, которая отображается:
<body>
<div class = "tab" style="width: 250px">
<button class ="tablinks" onclick = "openTable(event, 'FirstTeam')">First
Team</button>
<button class ="tablinks" onclick = "openTable(event, 'SecondTeam')">Second
Team</button>
</div>
<div id="FirstTeam" class="tabcontent">
<h3>First team members</h3>
<table class="table">
<thead>
<tr>
<th>Username</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<c:forEach items="${firstTeamUsers}" var ="user">
<tr>
<td>${user.username}</td>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div id="SecondTeam" class="tabcontent">
<h3>Secondteam members</h3>
<table class="table">
<thead>
<tr>
<th>Username</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<c:forEach items="${secondTeamUsers}" var ="user">
<tr>
<td>${user.username}</td>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
Итак, этот код работает и делает именно то, что я хочу. Он создает две вкладки «Первая команда» и «Вторая команда», и когда я нажимаю на каждую вкладку, он отображает таблицу с отсортированными пользователями по названию команды. Моя проблема в том, что я хочу сделать все это без жесткого кодирования названия команды и динамического генерирования элементов div, чтобы не имело значения, сколько команд будет в будущем или как их зовут. Есть идеи, как мне этого добиться?
Заранее спасибо за ваше время и помощь!