У меня была очень похожая проблема. Мой вопрос here
Моя страница XHTML выглядит -
<h:outputText itemEscaped="false" escape="false" value="#{singleViewResultDO.associatedCode}" />
associatedCode получает значение из запроса 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 .. Так как, я бежать = «ложь» в моем, мне не нужно, чтобы избежать моих HTML-теги в запрос. То, что я имею в виду не нужно конвертировать < в <> в > и ""
отметить также, что, поскольку у меня есть двойные кавычки„“в моем пролете, мне нужно, чтобы избежать его один раз, так что не будет экранирована, когда она достигает
Я получаю свой выход по желанию -.? 8000778 в красном цвете
Почему именно это это плохая практика, не могли бы вы доработать на том, что даже если у меня есть * полный * контроль над сгенерированной HTML? код? – jpangamarca
@jpangamarca по той же причине, почему MVC - хорошая практика. Он позволяет делать представления с использованием определенного языка (например, html, фрагменты, freemarker и т. д.) и не позволяет модели не знать о разных представлениях. Иногда было бы удобнее создавать определенные «модели» для просмотра и делать это на Java, но, как правило, этого лучше избегать, поскольку Java не подходит (и код обычно выглядит довольно уродливым) для описания представлений. Надеюсь, это имеет смысл. – Stef
Спасибо @Stef. Как только я был вынужден вывести HTML в неэкранированном h: outputText в ячейках сетки, не смог сделать facelet, потому что страница была плохо спроектирована, и мне не разрешили ее перепроектировать (стили CSS были применены идентификаторами компонентов , yuck!), поэтому идентификаторы будут дублированы, и страница будет взорваться. Благодарю. – jpangamarca