JSF не выводит нестрогий HTML - PullRequest
1 голос
/ 04 апреля 2011

Мне нужно вывести HTML-текст, который хранится в базе данных. Текст генерируется многофункциональным редактором, поэтому содержит плохо сформированный html (незамкнутые теги, такие как <br>). Поэтому у меня есть проблема, как распечатать его на странице.

Если я использую:

#{document.content}

Он печатает экранированный HTML-документ, и все теги отображаются на странице (сам код содержит «& lt;» вместо <) </p>

Видимое решение - использовать h: outputText с escape = "false:

<h:outputText value="#{document.content}" escape="false" /> 

Но он печатает html только до тех пор, пока он не будет правильно сформирован: текст останавливается на первом теге <br>. Кажется, JSF анализирует содержимое document.content и останавливается, когда не может этого сделать. Мне не нужен JSF для анализа содержимого, просто вывод!

Следующий код тоже не помог:

<h:outputText value="lt![CDATA[#{document.content}]]gt" escape="false" />

1 Ответ

2 голосов
/ 04 апреля 2011

Хорошо, похоже, это ошибка Chrome. После того, как я изменил DOCTYPE на html transitive , он показал ошибку " Entity‘ nbsp ’не определено " и не отображал содержимое. Но в других браузерах все отображается нормально! Даже после того, как я откатил DOCTYPE до xhtml строгий - Firefox и Opera отлично отображали контент и не обращали особого внимания на плохо сформированный html!

Не углублялся, но это как-то связано с Webkit - движком для Chrome.

Обновление : используйте , чтобы это работало нормально в Chrome и Safari.

Надеюсь, это поможет кому-то еще

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