Выполнение интерполяции строк с использованием SpringTemplateEngine и thymelaf StringTemplateResolverJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Выполнение интерполяции строк с использованием SpringTemplateEngine и thymelaf StringTemplateResolver

Сообщение Anonymous »

Выполнение строковой интерполяции, а также в некоторых случаях использование SpEL для строки Json.
Вывод целевой строки — json. который просто сопоставляет объект с каким-либо другим строковым форматом json.
Пример

Код: Выделить всё

{
"foo" : "[[${req.bar}]]"
}
которые преобразуются в json

Код: Выделить всё

{
"foo" : "xyz"
}
Проблема возникает, когда bar равен x"yz
который преобразуется в json

Код: Выделить всё

{
"foo" : "x"yz"
}
результат недействительный JSON.
Действительный Json будет

Код: Выделить всё

{
"foo" : "x\"yz"
}
как добиться этого во время интерполяции, не используя никакой постобработки или добавления диалекта
Текущая конфигурация
spring boot 2.7.17
thymeleaf версии 3.0.15.RELEASE

Код: Выделить всё

public TemplateEngine stringTemplateEngine() {

SpringTemplateEngine templateEngine = new SpringTemplateEngine();

// String template resolver for inline templates
StringTemplateResolver stringResolver = new StringTemplateResolver();
stringResolver.setTemplateMode(TemplateMode.TEXT);
stringResolver.setCacheable(false); // Disable caching for dynamic templates
stringResolver.setOrder(1);
stringResolver.setName("stringTemplateResolver");

templateEngine.addTemplateResolver(stringResolver);
templateEngine.addDialect(new CustomUtilityDialect());

return templateEngine;
}
Любая помощь приветствуется


Подробнее здесь: https://stackoverflow.com/questions/798 ... ingtemplat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»