Вопрос по jsf – <h: outputtext> печатает HTML как есть вместо фактического HTML [дубликата]

16

This question already has an answer here:

Component to inject and interpret String with HTML code into JSF page 1 answer

Я использую JSF 1.2

Я пытаюсь напечатать текст используя<h:outputtext>

<code><h:outputText id="warningDose" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
</code>

Теперь эта переменная содержит текст с тегами html.<b>,<i> так далее...

Но он отображает контент таким, какой он есть, вместо фактического вывода жирным шрифтом или курсивом html.

Есть ли способ сделать это<h:outputText> такой, что дает ответ html?

Ваш Ответ

3   ответа
36

Вы должны установить в теге h: outputText:

escape="false"

Но помните, что микширование & quot; вид & quot; Построение (т. е. создание строки с тегами HTML) между страницей представления JSF и базовым компонентом является довольно плохой практикой. Все "посмотреть производство" должен быть на странице просмотра.

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededfullError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

Вот

Моя страница в формате HTML выглядит так:

<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 = & quot; false & quot; В моем случае мне не нужно экранировать свои HTML-теги в запросе. Я имею в виду, что нет необходимости конвертировать & lt; & lt; & GT; & gt; и & quot; на & quot;

Также обратите внимание, что, поскольку у меня есть двойные кавычки & quot; & quot; в моем промежутке я должен убежать от него один раз, чтобы он не сбежал, когда достигнет.

Я получаю вывод по желанию - 8000778 в красном цвете

7

<h:outputText id="warningDose" escape="false" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>

Похожие вопросы