属性 Thymeleaf 无法识别

Property not recognized in Thymeleaf

我想在 Thymeleaf 中创建一个 link 以将用户路由到编辑页面。我的 Java class 看起来像这样(没有 getter 和 setter):


@Entity
@Table(name = "agencies")
public class Agency {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false, unique = true, length = 50)
    private String email;

    private String address;
}

我也有一个用这个方法的控制器:

 @Autowired private AgencyService service;

    @GetMapping("/agencies")
    public String showAgencyList(Model model) {
        List<Agency> agencies = service.listAll();
        model.addAttribute("agencies", agencies);

        return "agencies";
    }

这是 Thymeleaf 中的部分代码:

 <th:block th:each="agency : ${agencies}">
        <tr>
          <td>[[${agency.name}]]</td>
          <td>[[${agency.email}]]</td>
          <td>[[${agency.address}]]</td>
          <td>
            <a class="h4 mr-3" th:href="@{'/agencies/edit/' + ${agency.id} }">Edit</a>
            <a class="h4" th:href="@{/agents}">Choose</a>
          </td>
        </tr>
      </th:block>

现在一切正常,除了路径 th:href="@{'/agencies/edit/' + ${agency.id} } 中显示 cannot resovle agencycannot resolve id。这是为什么? table 已正确显示,我无法弄清楚为什么在 Thymeleaf 中提供另一个视图的路径时代理似乎未知。

我认为 ${agency.id} } 之间的空格会造成问题。

改变

th:href="@{'/agencies/edit/' + ${agency.id} }"

th:href="@{'/agencies/edit/' + ${agency.id}}"

th:href="@{'/agencies/edit/{id}(id = ${agency.id})'}"