首页 > 解决方案 > Thymeleaf EL 表达式使用 /?param=value 而不是 /value 生成链接

问题描述

我的 emailTemplate.html 中有一个链接模板,如下所示:

<span>To edit the invoice <a th:href="@{${editAddress}(invoiceid=${invoiceid})}">click here</a></span>

并产生:

http://localhost:8080/edit/?invoiceid=5d088b012f8c32416dbb5522

但我想拥有:

http://localhost:8080/edit/5d088b012f8c32416dbb5522

我的控制器方法:

@RequestMapping(value = "/edit/{invoiceid}", method = RequestMethod.GET, produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String editInvoice(@PathVariable("invoiceid") String invoiceid, Model model) {
    InvoiceData invoiceData = invoiceDataRepository.findById(invoiceid).get();
    model.addAttribute("invoicedata", invoiceData);
    return "edit";
}

我怎样才能做到这一点?

标签: javaspringspring-bootthymeleaf

解决方案


挣扎了一下,我变了

<a th:href="@{${editAddress}(invoiceid=${invoiceid})}">click here</a>

<a th:href="@{{editAddress}{invoiceid}(invoiceid=${invoiceid},editAddress=${editAddress})}">click here</a>

现在一切正常,输出为:

http://localhost:8080/edit/5d088b012f8c32416dbb5522

推荐阅读