Установите несколько атрибутов тега одновременно, используя переменную в Thymeleaf - PullRequest
0 голосов
/ 29 июня 2018

Я переносил некоторые 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?

1 Ответ

0 голосов
/ 29 июня 2018

Один из способов сделать это с помощью предварительной обработки. Примерно так будет работать с вашим примером:

<div class="myClass" th:attr="__${myVar}__" />

(Это действительно означает, что ${myVar} является допустимой строкой для свойства th: attr, поэтому вам нужно быть осторожным с ним.)

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