Как создать URL в thymeleaf с помощью параметра, переданного в шаблон? - PullRequest
0 голосов
/ 12 июня 2019

Я создал HTML-шаблон для писем.

Теперь я помещаю переменную в контекст:

context.setVariable("invoiceId", invoiceId);

В шаблоне у меня есть тег:

<p><span>To accept the invoice, click <a th:href="http://localhost/accept/${invoiceId}">HERE</a></span></p>

но когда я запускаю приложение, я получаю:

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "http://localhost/accept/${invoiceId}" (template: "mailTemplate" - line 7, col 47)

Как я могу использовать переменную $ {invoiceId} в этом случае?

1 Ответ

1 голос
/ 12 июня 2019

Обычно вы связываете контроллеры и представления с использованием модели (я предполагаю, что вы используете Spring MVC, так как вы уже используете Spring Boot).Единственная разница здесь будет

 model.addAttribute("invoiceId", invoiceId); 

Независимо от способа передачи информации, вы должны использовать шаблоны URL при создании URL.Они начинаются с @ и, как правило, позволяют вашему приложению перемещаться без необходимости где-либо жестко кодировать его адрес:

 <a th:href="@{/accept/{id}(id=${invoiceId})}">link text</a>

Обратите внимание, как тимилеф обрабатывает эти параметры: вы используете заполнители, такие как {foo}или {bar} в вашем шаблоне url, а затем объясните, что они значат в конце, что-то вроде (foo=${baz},bar=${quux}), где содержимое выражений внутри ${} может быть любым, что может интерпретировать тимелист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...