JSF1.2を使用しています
<h:outputtext>
を使用してテキストを印刷しようとしています
<h:outputText id="warningDose" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
これで、この変数にはHTMLタグ付きのテキストが含まれます。 <b>
、<i>
など...
ただし、実際の太字または斜体のhtml出力ではなく、コンテンツがそのまま表示されます。
これを<h:outputText>
にしてHTML応答を返すようにする方法はありますか?
H:outputTextタグで設定する必要があります。
escape="false"
ただし、JSFビューページと基になるBeanの間に「ビュー」構造を混在させる(つまり、HTMLタグを使用して文字列を作成する)ことは、ちょっと悪い習慣であることを忘れないでください。すべての「ビュープロダクション」はビューページにあるはずです。
逃げないように設定するだけです。
<h:outputText id="warningDose" escape="false" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
私は非常に似た問題を抱えていました。私の質問は ここ
私のxhtmlページは次のようになります-
<h:outputText itemEscaped="false" escape="false" value="#{singleViewResultDO.associatedCode}" />
associatedCodeは、HTMLタグを使用して条件付きスタイルを設定するSQLクエリから値を取得しています。
これが私の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タグをエスケープする必要はありません。つまり、<を<>に>および "から"に変換する必要がないということです。
また、スパンには二重引用符 ""が含まれているため、一度エスケープする必要があるため、に達してもエスケープされないことに注意してください。
必要に応じて出力を取得しています-赤い色の8000778