Reputation: 171
I understand how th:if works for html templates, but I don't find any clue on how to do it when you expect plain text (use case : plain text e-mail templating).
So far I tried :
<html xmlns:th="http://www.thymeleaf.org" th:inline="text" th:remove="tag">
Dear [[${contact.firstname}]] [[${contact.lastname}]],
An alert was triggered at location: [[${account.address}]]
<span th:if=\"${videoLink}\">To view your security camera recordings, please click on [[${videoLink]]</span>
</html>
It works... but the result contains the tag. Any idea of what I'm doing wrong ?
Thanks, Cyril
Upvotes: 6
Views: 7618
Reputation:
Thymeleaf 2.1 has a th:block
tag, which is basically a container for attributes. Your conditional text can be done like this:
<th:block th:if="${videoLink}">To view your...</th:block>
Upvotes: 10
Reputation: 171
It seems that, unlike the th:inline, the th:remove="" is NOT applied to child nodes and has to be added for each tag. Here, if I add it to the tag, the result is what I wanted :
<html xmlns:th="http://www.thymeleaf.org" th:inline="text" th:remove="tag">
Dear [[${contact.firstname}]] [[${contact.lastname}]],
An alert was triggered at location: [[${account.address}]]
<span th:if=\"${videoLink}\" th:remove="tag">To view your security camera recordings, please click on [[${videoLink]]</span>
</html>
Dear John Doe,
An alert was triggered at localation: 205 North Michigan Avenue Chicago, IL
To view your security camera recordings, please click on http://www.video.com?id=007
Upvotes: 3