2014-08-12 2 views
3

Я использую validation-api для проверки, если поле ввода не содержит недопустимых символов: <> '"и т. Д. Я использую аннотацию @Pattern с пользовательским сообщением, переведенным на что-то вроде этого : Следующие знаки <> "" "не допускаются. Когда это сообщение печатается, отсутствует символ одиночной кавычки. У меня есть: следующие признаки <> "«не разрешаетсяЦитата тимелеафа в сообщении об ошибке валидации

Я попытался с помощью \»и \ u0027 и ' в message.properties, но без успеха (в третьем случае в сообщении есть фрагмент '.) сообщения отображаются с помощью:.

<p class="error" th:if="${#fields.hasErrors('company.name')}" th:errors="${company.name}">error</p> 

Thymeleaf версия: 2.1.3.RELEASE

весна версия: 3.2.8.RELEASE

Spring WebFlow Versio n: 2.4.0.RELEASE

ответ

8

Я мало знаю о Thymeleaft. Но имейте в виду, что вам может понадобиться избежать одиночных кавычек (с двумя одинарными кавычками ('')), если вы получите сообщение с использованием MessageFormat и ResourceBundle.

Если вы используете Spring ResourceBundleMessageSource (который использует ResourceBundle и MessageFormat внутренне), вы должны сделать то же самое.

MessageFormat javadoc См:

В строке, пару одинарных кавычек можно использовать процитировать любые произвольных символы, кроме одинарных кавычек. Например, строка шаблона "'{0}'" представляет строку "{0}", а не FormatElement. Одна цитата сама должна быть представлена ​​двойными одинарными кавычками '' по всей строке . Например, строка шаблона «'{' '}'" интерпретируется как последовательность '{(начало цитаты и левая фигурная скобка),' '(одна цитата ) и}' (правая фигурная скобка и конец цитаты), а не '{' и '}' (цитированные левые и правые фигурные скобки): представляющая строку "{'}", не "{}".

Некоторое время назад я писал в блоге, который предоставляет некоторые подробности о именно этой теме: Single quote escaping with Java resource bundles

Смежные вопросы