web-dev-qa-db-fra.com

<h: outputtext> affiche le code HTML tel quel à la place du code HTML réel

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?

16
Ketan

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.

36
javatutorial

Il suffit de le régler pour ne pas s'échapper.

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

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

1
goyalshub1509