Невозможно отобразить результат на основе идентификатора базы данных, когда идентификатор передается для просмотра - PullRequest
0 голосов
/ 15 января 2019
<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 верна

1 Ответ

0 голосов
/ 15 января 2019

При нажатии на ссылку он выполнит GET-запрос, поэтому попробуйте изменить метод в контроллере на method = RequestMethod.GET или просто удалите method = RequestMethod.POST.

Обновление:

Часть пищевого шаблона, которая находится в третьем фрагменте кода, циклически перебирает список с именем recipes, но метод Controller не добавляет список в качестве атрибута к модели только «name» и «recipeText». Вероятно, вам нужен шаблон для отображения рецепта, по которому вы щелкнули ссылку? Что-то вроде <h4 th:text="${name}"></h4> <span th:text="${recipeText}" />

...