Как мне обращаться с HTML-сущностями в JSF - PullRequest
0 голосов
/ 24 августа 2011

Я работаю над обновлением старой веб-программы, написанной на PHP, с базой данных MySQL в качестве бэкэнда.

База данных полна такого текста <P><STRONG>

Что, очевидно, является закодированной формой <P><STRONG><FONT size=4>

Как мне получить файл JSF для правильной визуализации? Вывод его в виде экранированного текста дает мне 1-ю строку, а неэкранированный текст - 2-ю строку.

Я хочу, чтобы HTML-код отображался в документе как html , я приму на себя риск сделать это:)

Мне лучше расшифровать текст в базе данных? Я не уверен, что это формат, с которым я хочу работать в будущем, но у меня так мало опыта работы с объектами HTML, что я просто не уверен, что это лучший долгосрочный маршрут.

Здесь можно встретить что угодно, от технических ноу-хау до буйства мудрых старых мудрецов.

1 Ответ

4 голосов
/ 24 августа 2011

Как мне получить файл JSF для правильной визуализации?Вывод его в виде экранированного текста дает мне 1-ю строку, а неэкранированный текст - 2-ю.

Обтекание StringEscapeUtils#unescapeHtml() в функции EL (пример здесь ) и отобразите его в <h:outputText> с escape="false".

<h:outputText value="#{util:unescapeHtml(bean.value)}" escape="false" />

Функция превратит &lt; в < и так далее, escape="false" предотвратит JSFот повторного экранирования, чтобы предотвратить буквальный интерпретацию контролируемого пользователем ввода, что может создать дыры в XSS.


Мне лучше декодировать текст в базе данных?Я не уверен, что это формат, с которым я хочу работать в будущем, но у меня так мало опыта работы с сущностями HTML, что я просто не уверен, что это лучший долгосрочный маршрут.

Лучше всего вообще не хранить HTML в БД.Если на самом деле нет другого варианта, я бы выбрал их расшифровку прямо в БД.

...