Выражение EL Thymeleaf создает ссылку с /? Param = value вместо / value - PullRequest
0 голосов
/ 18 июня 2019

У меня есть шаблон ссылки в моем 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

Метод My Controller:

@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";
}

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Самый простой способ сделать это:

<span>To edit the invoice 
     <a th:href="@{${edit_address + '/' + invoice_id}}">click here</a>
</span>

При условии, что edit_address = 'edit' и invoice_id = 5d088b012f8c32416dbb5522 ссылка будет указывать на http://localhost:8080/edit/5d088b012f8c32416dbb5522

0 голосов
/ 18 июня 2019

Немного потрудившись, я изменился

<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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...