#java #spring #spring-boot #spring-mvc #thymeleaf
#java #spring #весенняя загрузка #spring-mvc #thymeleaf
Вопрос:
Я пытаюсь отправить пользователя на определенную страницу, содержащую список их элементов. До сих пор у меня ничего не получалось.
Сначала я показываю страницу со списком всех пользователей, с гиперссылками, переходящими на то, что, по моему мнению, должно быть их соответствующей страницей.
В моем шаблоне у меня есть это:
<li th:each="key: ${users.keySet()}">
<span th:text="${users.get(key).getName()}"></span>
<a href="games.html" th:href="@{/{user}/games (user=${users.get(key).getName()}) }">View games</a></li>
</li>
который в настоящее время перенаправляет, например, на URL http://localhost:8080/Steve/games
.
Трудность, с которой я сталкиваюсь, заключается в том, что я знаю, как связать все остальное вместе.
У меня есть контроллер с этим сопоставлением, который, я считаю, должен вызываться, когда этот URL
@RequestMapping("/{users}/games")
@ResponseBody
public String userGames(@PathVariable final String username,
Model model){
.. List<Games> games= getGames(username)..
model.addAttribute("games", games);
return "games";
}
итак, что я хотел бы сделать там, так это отобразить HTML-страницу шаблона «игры», но со списком игр, которые я извлек для этого пользователя. Однако я получаю стандартную This application has no explicit mapping for /error, so you are seeing this as a fallback.
ошибку и не могу понять, где я ошибся.
Мой шаблон ‘Games’ следует тому же шаблону, что и предыдущий, путем перебора списка:
<ol>
<li th:each="game : ${games}" th:text="${game.getName()}"></li>
</ol>
но не отображается.
В моем игровом классе есть метод для поиска имени. В трассировке стека нет исключений
Любая помощь была бы высоко оценена, спасибо.
Комментарии:
1. Есть ли у вас метод getName() в вашем игровом классе? Отображается ли что-нибудь (stacktrace) в консоли java?
2. Вы могли бы проверить с помощью $ {game.name } вместо этого.
3. @mate00 — Привет, да, метод существует, нет трассировки стека использования tbh. Никаких исключений и т.д. Я попробую game.name и посмотрим, поможет ли это!
4. @mate00 — game.name выдал тот же результат.
5. Возможно ли, чтобы вы поделились своим проектом? Я мог бы попробовать запустить это сам и посмотреть, смогу ли я помочь.
Ответ №1:
Хорошо, подводя итог нашему разговору в чате: в вашем классе контроллера отсутствовала @Controller
аннотация, поэтому ваш метод сопоставления вообще не вызывался. Затем вы убедитесь, что строка в параметре метода контроллера имеет то же имя, что и то, через что передается.