Добавление гиперссылок HTML в файлы свойств комплекта ресурсов Java - PullRequest
2 голосов
/ 16 марта 2012

Я использую Java Resource Bundles для управления сообщениями.

Мне нужно отобразить сообщение на странице JSF, и сообщение также содержит некоторую разметку HTML.К сожалению, HTML-код также отображается на экране, а не выводится браузером как HTML:

IE

Click me <a href="link....">here</a>

Мое сообщение в файле свойств:

clickme=Click me <a href="link....">here</a>

Мой JSF:

<h:outputText value="#{messages['clickme']}" />


Есть идеи?

Спасибо

1 Ответ

3 голосов
/ 16 марта 2012

JSF / Facelets по умолчанию экранирует специальные символы HTML, чтобы предотвратить XSS-атаки при повторном отображении данных, контролируемых пользователем. Вы можете отключить его для каждого <h:outputText>, явно указав для атрибута escape значение false.

.
<h:outputText value="#{messages['clickme']}" escape="false" />

Вам нужно только быть абсолютно уверенным, что вы не сделаете этого для неанизированных данных, контролируемых пользователем, то есть всего , которое приходит с HTTP-запросом, таким как заголовки, файлы cookie, параметры, тело, и т.д.

...