У вас есть два варианта.
Первый. Не используйте html-объекты вообще. Просто избегайте специальных символов, используя \
. Обратите внимание, что вы должны указать значение строки в одинарных кавычках:
<input th:name="title" th:value="'Wayne\'s World'" />
Второй. Использование Thymeleaf-х string utility для эвакуации XML enitites:
<input th:name="title" th:value="${#strings.escapeXml('Wayne’s World')}" />
Когда строковое значение приходит от контроллера, не используйте __${}__
выражение препроцессирования. Это не нужно. Просто используйте стандартное переменное выражение Thymeleaf ${}
. И не добавляйте это выражение в одинарные кавычки. Посмотрите на ${title}
переменной в следующем примере:
<th:block th:include="row::row(attrs='value=${title}, minLength=\'.{1, 16}\', required=true, ... />
В этом случае вы можете добавить строковое значение в контроллере, как есть, без каких-либо побега:
public String method(ModelMap model){
...
mode.addAttribute("title", "Wayne's world");
...
}
К сожалению, потребность в HTML сущности является для случаев, когда в заголовке есть цитата, как показано ниже. ' ' Чтобы избежать цитаты (например, 'Wayne' \ s World'), вызывает синтаксический разбор по очевидным причинам. Для использования html-сущностей (т. Е. 'Wayne ’ s World') просто печатает без оценки, а для избежания его с помощью' # strings.escapeXml' выбрасывается одно исключение синтаксического анализа как первое по тем же причинам. –
000
@ 000 Непонятно. Означает ли это, что вы получаете '$ {title}' от контроллера? –
Да, '$ {title}' поступает с контроллера – 000