Thymeleaf: не удалось разобрать как выражение для ссылок - PullRequest
0 голосов
/ 17 апреля 2020

Я новичок в тимелисте и не понимаю эту ошибку.

2020-04-16 16: 20: 24.222 ОШИБКА 18060 --- [nio-8080-exe c -1] org.thymeleaf.TemplateEngine: [THYMELEAF] [http-nio-8080-exe c -1] Шаблон обработки исключений "products": не удалось проанализировать как выражение: "/ @ {'/ edit /' + $ {product.id}} "(template:" products "- строка 32, столбец 24)

org.thymeleaf.exceptions.TemplateProcessingException: Не удалось проанализировать как выражение:" / @ {'/ edit /' + $ {product.id}} "(template:" products "- строка 32, столбец 24)

вот код html / thymeleaf:

    <tr th:each="product : ${products}">
        <td th:text="${product.id}">Product ID</td>
        <td th:text="${product.name}">Name</td>
        <td th:text="${product.brand}">Brand</td>
        <td th:text="${product.madein}">Made in</td>
        <td th:text="${product.price}">Price</td>
        <td>
            <a th:href="/@{'/edit/' + ${product.id}}">Edit</a>
            &nbsp;&nbsp;&nbsp;
            <a th:href="/@{'/delete/' + ${product.id}}">Delete</a>
        </td>
    </tr>

Вот применимый код Spring Boot Controller:

@RequestMapping("/edit/{id}")
public ModelAndView showEditProductPage(@PathVariable(name = "id") int id) {
    ModelAndView mav = new ModelAndView("edit_product");
    Product product = productService.get(id);
    mav.addObject("product", product);

    return mav;
}

@RequestMapping("/delete/{id}")
public String deleteProduct(@PathVariable(name = "id") int id) {
    productService.delete(id);
    return "redirect:/";       
}

Если я закомментирую последний раздел td, остальная часть будет работать нормально. Есть предложения?

1 Ответ

0 голосов
/ 17 апреля 2020

Попробуйте использовать следующее:

<tr th:each="product : ${products}">
    <td th:text="${product.id}">Product ID</td>
    <td th:text="${product.name}">Name</td>
    <td th:text="${product.brand}">Brand</td>
    <td th:text="${product.madein}">Made in</td>
    <td th:text="${product.price}">Price</td>
    <td>
        <a th:href="@{/edit/{id}(id=${product.id})}">Edit</a>
        &nbsp;&nbsp;&nbsp;
        <a th:href="@{/delete/{id}(id=${product.id})}">Delete</a>
    </td>
</tr>

См. Синтаксис здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...