Thymeleaf使用路径变量th:href

问题描述 投票:18回答:8

这是我正在迭代的代码:

      <tr th:each="category : ${categories}">
        <td th:text="${category.idCategory}"></td>
        <td th:text="${category.name}"></td>
        <td>
          <a th:href="@{'/category/edit/' + ${category.id}}">view</a>
        </td>
      </tr>

它指向的URL应该是/category/edit/<id of the category>

它说无法解析表达式:

      Exception evaluating SpringEL expression: "category.id" (category-list:21)
java spring spring-mvc spring-boot spring-el
8个回答
29
投票

嗨,我认为你的问题是一个类型错误

<a th:href="@{'/category/edit/' + ${category.id}}">view</a>

你正在使用category.id,但在你的代码中是iddategory,正如Eddie所说

这对你有用

<a th:href="@{'/category/edit/' + ${category.idCategory}}">view</a>

11
投票

一种更简洁,更简单的方法

<a href="somepage.html" th:href="@{|/my/url/${variable}|}">A Link</a>

我在Thymeleaf Documentation的“4.8 Literal substitutions”中找到了这个解决方案。


10
投票

根据Thymeleaf documention for adding parameters的正确方法是:

<a th:href="@{/category/edit/{id}(id=${category.idCategory})}">view</a>

2
投票

您的代码在语法上看起来是正确的,但我认为您的属性不存在以创建URL。

我只是测试了它并且对我来说很好。

尝试使用category.idCategory而不是category.id,例如......

  <tr th:each="category : ${categories}">
    <td th:text="${category.idCategory}"></td>
    <td th:text="${category.name}"></td>
    <td>
      <a th:href="@{'/category/edit/' + ${category.idCategory}}">view</a>
    </td>
  </tr>

2
投票

我试图浏览一个对象列表,将它们显示为表格中的行,每行都是一个链接。这对我有用。希望能帮助到你。

// CUSTOMER_LIST is a model attribute
<table>
    <th:block th:each="customer : ${CUSTOMER_LIST}">
        <tr>
            <td><a th:href="@{'/main?id=' + ${customer.id}}" th:text="${customer.fullName}" /></td>
        </tr>
    </th:block>
</table>

1
投票

我想你可以试试这个:

<a th:href="${'/category/edit/' + {category.id}}">view</a>

或者如果你有“idCategory”这个:

<a th:href="${'/category/edit/' + {category.idCategory}}">view</a>

1
投票

“List”是从后端获取并使用迭代器在表中显示的对象

“minAmount”,“MaxAmount”是一个对象变量“mrr”是一个获取值的临时var,并迭代mrr来获取数据。

<table class="table table-hover">
<tbody>
<tr th:each="mrr,iterStat : ${list}">
        <td th:text="${mrr.id}"></td>
        <td th:text="${mrr.minAmount}"></td>
        <td th:text="${mrr.maxAmount}"></td>
</tr>
</tbody>
</table>

-1
投票

这是添加网址的正确方法:@ {$ {'/ category / edit /'+ category.id}}

© www.soinside.com 2019 - 2024. All rights reserved.