Я переносил некоторые JSP-файлы в Thymeleaf и обнаружил следующую проблему. В исходном коде JSP есть файл, включенный во множество других файлов JSP, в котором есть строка, подобная следующей:
<c:set var="myVar" value="data-x=50 data-y=37" />
В файлах, которые включают этот, переменная myVar
используется следующим образом:
<div class="myClass" ${myVar}>
установка нескольких атрибутов, которые используются везде одновременно. Главное здесь то, что вы устанавливаете myVar
в одном файле, а его значения используются во всех других файлах. Если вам нужно изменить значение атрибутов, вам нужно изменить только один файл.
Пытаясь воспроизвести это в Thymeleaf, я попытался использовать атрибут th:attr
следующим образом. Сначала я устанавливаю переменную в модели следующим образом:
model.addAttribute("myVar", "data-x=50, data-y=37");
а затем в тимелиф я делаю:
<div class="myClass" th:attr="${myVar}" >
но не работает, выкидывает
TemplateProcessingException: Could not parse as assignation sequence: "${myVar}"
Я также думал об использовании Javascript для динамического добавления атрибутов с использованием JQuery, но я бы предпочел сделать это другим способом, так как я не создавал приложение, у него много сценариев, и я боюсь делать это через Javascript могут возникнуть побочные эффекты.
Можно ли каким-либо образом писать напрямую в вывод HTML с помощью Thymeleaf?