web-dev-qa-db-fra.com

Comment afficher un saut de ligne avec outputText?

J'ai besoin de rendre un saut de ligne à l'aide de outputText pour pouvoir utiliser l'attribut rendered. j'ai essayé

<h:outputText value="<br/>" escape="false" />

mais cela a généré une exception

The value of attribute "value" associated with an element type "null" must not contain the '<' character. 
41
Thang Pham

Ce n'est en effet pas valable depuis Facelets car il est syntaxiquement invalide en XML. Vous devez échapper manuellement les caractères spéciaux XML comme <, > etc.

<h:outputText value="&lt;br/&gt;" escape="false" />

Vous pouvez cependant émettre simplement le <br/> dans le texte du modèle sans avoir besoin d'un <h:outputText>.

<br/>

Pour le rendre conditionnellement, enveloppez-le par exemple dans un <ui:fragment>.

<ui:fragment rendered="#{bean.rendered}"><br /></ui:fragment>

UNE <h:panelGroup> est également valide car il n'émet de toute façon rien au format HTML.

<h:panelGroup rendered="#{bean.rendered}"><br /></h:panelGroup>
90
BalusC

PAGE JSF

<h:outputText value="#{car.crg}" escape="false" style="white-space: pre-wrap;Word-wrap: break-Word; " />

escape doit être false et écrire la méthode bean Getter comme suit

 public String getCrg() {
         return crg.replace("<br/>", "&lt;br /&gt;");
        //return crg;
    }
5
akhil

Vous pouvez essayer de mettre le "<br />" à l'intérieur d'un groupe de ressources, puis obtenez la valeur de ce groupe de ressources.

0
Jaime Garcia