сбежал из Амберсанда в JSF i18n Resource Bundle - PullRequest
0 голосов
/ 07 июня 2011

У меня есть что-то вроде

<s:link view="/member/index.xhtml" value="My&#160;News" propagation="none"/>
<s:link view="/member/index.xhtml" value="#{msg.myText}" propagation="none"/>

, где значение myText в messages.properties равно

myText=My&#160;News

Первая строка примера работает нормально и заменяет текст на "My&nbsp;News", но второе, которое использует значение из комплекта ресурсов, тоже экранирует янтарь и "My&amp;#160;News".

Я также пытался использовать экранированные последовательности Юникода для янтаря и / или хеша с My\u0026\u0023160;News, My\u0026#160;News и My\u0026nbsp;News в файле свойств без успеха.

(Использовал css no-wrap вместо ранее использовавшейся xml-кодировки, но в любом случае был бы заинтересован)

1 Ответ

1 голос
/ 07 июня 2011

РЕДАКТИРОВАТЬ - Ответ на уточненный вопрос

Первый явно встроенный, поэтому переводчик знает, что это безопасно.
Второй - из внешнего источника (вы используете выражениеЯзык) и как таковой не является безопасным и должен быть спасен.Результат экранирования будет таким, как вы написали, в основном он покажет вам точное значение сущности HTML.
Это связано с безопасностью (например, XSS) и необязательно i18n.

Предыдущаяпопытка

Я не совсем понимаю, о чем вы просите, но я верю, что это «как отобразить это?».

Большинство стандартных элементов управления JSF содержат атрибут escape, которыйесли установлено в false, текст не будет экранирован.К сожалению, похоже, что вы используете что-то вроде SeamTools, у которого нет этого атрибута.

Что ж, в этом случае сделать особо нечего.Если вы не можете использовать стандартный элемент управления, возможно, вам следует пойти и попытаться на самом деле сохранить файл свойств в формате Unicode (на самом деле UTF-16 BigEndian) и просто поставить действительный символ неразрывного пробела Unicode.Теоретически это должно работать;Файлы свойств в кодировке Unicode поддерживаются в последней версии Java (хотя я не могу вспомнить, была ли это Java SE 5 или Java SE 6) ...

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