我不确定为什么会这样,因为我有一个较旧的项目,其中以这种方式编写的链接可以正常工作,但是我将新项目升级到了SpringBoot 2和Thymeleaf 3,当我单击链接时,我一直得到此URL。从我的首页开始,而其他html页面则相同的链接设置正确运行。这是从Intellij运行的,尚未设置为生产应用程序。
该链接将我带到http://localhost:80/@%7B/edit/%7Bexpiring.broker.id%7D%7D,而不是http://localhost:80/edit/ {broker.id}
有人可以告知为什么会这样吗?由于它准确地转到了URL,因此我没有收到任何错误,因此它只是在处理URL时出错。
这是我的HTML
<table class="table table-striped" data-toggle="table" data-classes="table-no-bordered">
<thead>
<th>Broker</th>
<th>Documents</th>
</thead>
<tbody>
<tr th:each="expiring:${aboutToExpire}">
<td><a href="@{/edit/${expiring.broker.id}}"><span th:text="${expiring.broker.accountName}"></span></a></td>
<td><span th:text="${expiring.type}"></span></td>
</tr>
</tbody>
</table>
这是我的控制器功能:
@RequestMapping(value="/edit/{id}")
public String editBroker(Model model,@PathVariable("id") Long id, Broker broker){
Broker existing = brokerRepository.findById(id).get();
model.addAttribute("broker",existing);
return "brokerProfile";
}
我的一些依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.9.RELEASE</version>
</dependency>
</dependencies>