<table class = "table">
<tr>
<th>Name</th>
</tr>
<tr th:each = "recipe : ${recipes}">
<td th:text = "${recipe.Name}"></td>
<td>
<span th:each = "recipe,iterStat : ${recipes}">
</span>
</td>
<td>
<a th:href = "@{/recipe/food/{id}(id=${recipe.id})}">view</a>
</td>
</tr>
Я пытаюсь щелкнуть эту ссылку выше, используя этот контроллер
@RequestMapping(value = "recipe/food/{id}", method = RequestMethod.POST)
public String viewRecipe(@PathVariable int id, Model model){
model.addAttribute("name", recipeDao.findOne(id));
model.addAttribute("recipeText", recipeDao.findOne(id));
return "Recipes/food" ;
}
для отображения отдельного элемента на основе его идентификатора здесь
<table class = "table">
<tr>
<th>Name</th>
</tr>
<form method = "post" th:action = "recipe/food/{id}" th:object=${recipe}">
<tr th:each = "recipe : ${recipes}">
<td th:text = "${recipe.name}">text</td>
<td th:text = "${recipe.recipeText}">text</td>
</tr>
<span th:errors = "*{recipeText}" class = "error"></span>
</form>
однако я получаю только 404, но информация об URL верна
@shakhawat resources / templates / Recipes / food, Recipes / index отображает список, который у меня тоже отлично настроен.
у вас есть добавленный преобразователь представлений?
Можете ли вы добавить указатель отладки / сообщение в обработчик сообщений, чтобы проверить, прошло ли действие публикации. Если он может публиковать успешно, то проблема заключается в представлении и распознавателе представлений.
Вам также может потребоваться переместить resources/templates/Recipes/food в Recipes/food, как и страницу index.
Я не уверен, как конкретно просмотреть обработчик сообщений в отладчике, а Recipes / index находится в той же структуре каталогов, что и вышеупомянутая структура Recipes / food, и отлично работает. просто не напечатал все это извини об этом




Когда вы нажимаете ссылку, он выполняет GET-запрос, поэтому попробуйте изменить метод в Контроллере на method = RequestMethod.GET или просто удалите method = RequestMethod.POST.
Обновлять:
Часть шаблона еды, которая находится в третьем фрагменте кода, перебирает список с именем recipes, но метод Controller не добавляет список в качестве атрибута к модели только «name» и «recipeText». Возможно, вам нужен шаблон для отображения рецепта, по которому вы перешли по ссылке? Что-то вроде <h4 th:text = "${name}"></h4> <span th:text = "${recipeText}" />
к сожалению, это ничего не изменило.
хорошо, и у вас нет RequestMapping на уровне класса в вашем контроллере, поэтому URL-адрес не совпадает? Просматривали ли вы запрос на вкладке сети в своем браузере, чтобы убедиться, что уходящий запрос соответствует вашим ожиданиям?
у меня есть @RequestMapping ("рецепт") над моим публичным классом RecipeController
похоже, что контроллер на самом деле не возвращает food.html браузеру и, следовательно, не передает идентификатор и т. д.
Если у вас есть @RequestMapping как в классе, так и в методе, фактический путь конечной точки - это объединение этих двух, поэтому в вашем случае это «рецепт / рецепт / еда / {id}», поэтому, вероятно, поэтому вы получаете 404 Боже, хотя вы перешли на ПОЛУЧИТЬ.
Хорошо, я изменил сопоставление классов, и теперь моя страница шаблона начальной загрузки отображается вместе с навигацией, но она по-прежнему не отображает информацию. в инспекторе сетей мой HTML-код «Добавить» отображается, когда я перехожу к нему, а шаблон «food» - нет. Кроме того, сгенерированный шаблон, который отображается, представляет собой число, которое я должен передать в качестве идентификатора.
Извините, я не понимаю, что вы имеете в виду, это третий фрагмент кода в вашем сообщении из шаблона еды? Вы имеете в виду, что идентификатор не передается в метод контроллера, как должен?
ах ладно извините за путаницу. поэтому идентификатор определенно передается контроллеру, я могу видеть идентификатор в URL-адресе в браузере, когда я нажимаю ссылку, по которой он был передан, но похоже, что в шаблон еды, который является третьим фрагментом кода, ничего не передается
Часть шаблона еды, которая находится во фрагменте кода, перебирает список с именем recipes, но метод Controller не добавляет список в качестве атрибута к модели, только «name» и «recipeText». Разве в шаблоне еды не должен отображаться рецепт, на который вы перешли по ссылке? Что-то вроде <h4 th: text = "$ {name}"> </h4> <span th: text = "$ {recipeText}" />
я думаю, ты прав. Я попробую здесь через некоторое время, но, возможно, мне нужно попробовать что-то еще, ха-ха, похоже, слишком много времени потрачено на что-то настолько глупое. Большое спасибо за вашу помощь! @nordenvall
вы можете разместить свою структуру каталогов для файлов просмотра?