я столкнулся с проблемой сегодня со следующим кодом с помощью Spring:Каков эквивалент Pattern.quote() для MessageFormat?
String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
Это используется, чтобы получить отображаемые заголовки ряда вкладок в верхней части нашего сайта (экземпляр uPortal). Проблема в том, что если tabName
содержит одну цитату, она автоматически удаляется из результата. Например, What's For Lunch
становится Whats For Lunch
.
Я отследил почему, и это потому, что 3-й параметр в этом методе должен иметь формат, указанный в java.text.MessageFormat. Требуются 2 одинарные кавычки.
Поскольку мы не передаем какие-либо параметры в формате, я могу безопасно избегать любых специальных символов в tabName
, прежде чем передавать его в качестве третьего параметра. Я мог бы вручную заменить одиночные кавычки двумя одинарными кавычками, но то, что мне действительно понравилось, это что-то вроде Pattern.quote()
, только для языка MessageFormat
, который гарантированно будет обрабатывать все экранирование. Есть ли что-нибудь подобное?
Нет, но вы можете смело выполнять подстановку '' '' '' '', а затем вложить все это в одинарные кавычки. Удвоенные одиночные кавычки интерпретируются должным образом даже внутри текста с одним кавычком. – VGR
Спасибо, если вы добавите это как ответ, я приму это. – xdhmoore