J'utilise JSF 1.2
J'essaie d'imprimer du texte avec <h:outputtext>
<h:outputText id="warningDose" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
Maintenant, cette variable contient du texte avec des balises HTML. <b>
, <i>
etc ...
Mais cela affiche le contenu tel quel au lieu de la sortie HTML en gras ou en italique.
Existe-t-il un moyen de rendre ce <h:outputText>
tel qu'il donne une réponse HTML?
Vous devez définir dans la balise h: outputText:
escape="false"
Mais rappelez-vous que mélanger la construction "view" (c'est-à-dire créer une chaîne avec des balises HTML) entre la page de vue JSF et le bean sous-jacent est un peu une mauvaise pratique. Tous les "voir la production" devraient être dans la page de vue.
Il suffit de le régler pour ne pas s'échapper.
<h:outputText id="warningDose" escape="false" styleClass="redText" value="#{templatePrescriptionMaintenanceBackingBean.doseWarningText}"></h:outputText>
J'ai eu un problème très similaire. Ma question est ici
Ma page xhtml ressemble à -
<h:outputText itemEscaped="false" escape="false" value="#{singleViewResultDO.associatedCode}" />
relatedCode obtient la valeur d'une requête SQL dans laquelle je souhaite utiliser une balise HTML pour obtenir un style conditionnel.
Voici ma requête SQL ressemble à:
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
Ignorez REPLACE et WM_CONCAT comme pour afficher les valeurs séparées par des virgules. Le morceau de code pertinent est
CASE WHEN sv.rmvd = 0 THEN ' '||sv.CMPNION_CD ELSE '<span style=\"color:red; \">' || ' '||sv.CMPNION_CD|| '</span>' END
Je veux avoir une balise basée sur une condition rmvd = 0 .. Depuis, j'ai escape = "false" dans mon compte, je n'ai pas besoin d'échapper à mes balises HTML dans la requête. Ce que je veux dire, c'est qu'il n'est pas nécessaire de convertir <en <> en> et "en"
Notez également que depuis que j'ai des guillemets "" dans mon étendue, je dois y échapper une fois pour éviter qu'ils ne soient échappés.
Je reçois ma sortie comme souhaité - 8000778 en rouge