Я пытаюсь отправить пользователя на определенную страницу, содержащую список его элементов. До сих пор я был несколько неудачным.
Сначала я показываю страницу со списком всех пользователей, с гиперссылками, ведущими на то, что, по моему мнению, должно быть их соответствующей страницей.
В моем шаблоне у меня есть это:
<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. и не могу понять, где я ошибся.
Мой шаблон «Игры» следует тому же шаблону, что и предыдущий, зацикливая список:
<ol>
<li th:each = "game : ${games}" th:text = "${game.getName()}"></li>
</ol>
но не отображается.
Мой класс Game имеет метод для поиска имени. В трассировке стека нет исключений
Любая помощь будет принята с благодарностью, спасибо.
Вместо этого вы можете проверить с помощью ${game.name}.
@ mate00 - Привет, да, метод существует, нет трассировки стека использования. Никаких исключений и т. д. Я попробую game.name и посмотрю, поможет ли это!
@ mate00 - game.name дало тот же результат.
Возможно ли, что вы поделитесь своим проектом? Я мог бы попробовать запустить его сам и посмотреть, смогу ли я помочь.
@ mate00 - возможно, мне нужно сначала привести его в порядок и сделать его несколько симпатичным :D
Давайте продолжить обсуждение в чате.




Хорошо, подытоживая наш разговор в чате: в вашем классе контроллера отсутствовала аннотация @Controller, поэтому ваш метод сопоставления вообще не вызывался. Затем вы убедитесь, что строка в параметре метода контроллера имеет то же имя, что и то, что передается.
У вас есть метод getName() в вашем классе Game? Что-нибудь (stacktrace) отображается в консоли Java?