<h: outputtext> печатает HTML как есть вместо фактического HTML
Я использую JSF 1.2
Я пытаюсь распечатать текст, используя <h:outputtext>
<h:outputText id="warningDose" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
Теперь эта переменная содержит текст с тегами html. <b>
, <i>
и т.д.
Но это отображает контент, а не фактический жирный или курсивный вывод html.
Есть ли способ сделать это <h:outputtext>
таким, чтобы он дал html-ответ?
Ответы
Ответ 1
Вы должны установить в теге h: outputText:
escape="false"
Но помните, что смешанная конструкция "вид" (т.е. создание строки с тегами HTML) между страницей просмотра JSF и базовым bean является довольно плохой практикой. Вся информация о представлении должна отображаться на странице просмотра.
Ответ 2
Просто установите его, чтобы он не исчез.
<h:outputText id="warningDose" escape="false" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
Ответ 3
У меня была очень похожая проблема. Мой вопрос здесь
Моя страница xhtml выглядит как
<h:outputText itemEscaped="false" escape="false" value="#{singleViewResultDO.associatedCode}" />
relatedCode получает значение из SQL-запроса, где я хочу использовать тег HTML для условного стиля.
Вот мой запрос SQL выглядит так:
Select A, REPLACE(Wm_Concat(DISTINCT CASE WHEN sv.rmvd = 0 THEN ' '||sv.CMPNION_CD ELSE '<span style=\"color:red; \">' || ' '||sv.CMPNION_CD|| '</span>' END),' , ','') , "
from Table
Игнорировать REPLACE и WM_CONCAT, как и для отображения значений, разделенных запятыми. Соответствующий фрагмент кода
CASE WHEN sv.rmvd = 0 THEN ' '||sv.CMPNION_CD ELSE '<span style=\"color:red; \">' || ' '||sv.CMPNION_CD|| '</span>' END
Я хочу иметь тег, основанный на условии rmvd = 0.. Так как у меня есть escape = "false" в моем, мне не нужно скрывать теги html в запросе. Я имею в виду, нет необходимости конвертировать < до < > to > и "to "
Также обратите внимание, что, поскольку у меня есть двойные кавычки "" в моем диапазоне, мне нужно уйти от него один раз, чтобы он не ускользнул, когда он достигнет.
Я получаю свой вывод по желанию - 8000778 в красном цвете