2009-12-15 7 views
5

Quelle serait la bonne expression EL dans JSP pour avoir une nouvelle ligne ou HTML <br/>? Voici mon code qui ne fonctionne pas et qui affiche '\ n' dans le texte.Comment mettre "nouvelle ligne" dans le langage d'expression de JSP?

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/> 
+0

Vous voulez probablement utiliser
kgiannakakis

+0

j'ai ajouté le tag « JSF », en supposant qu'il le Bozho

+0

@Bozho: ce sont les faces Oracle ADF, donc vous avez raison. – BalusC

Répondre

12

Puisque vous voulez sortie <br />, il suffit de faire:

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}<br />#{msg.TCW_SELECT_PART_ANALYSIS2}" escape="false" /> 

L'attribut escape="false" est là pour éviter le HTML se sont échappés <br /> être.

Vous pouvez même afficher les deux messages dans des étiquettes séparées et mettre le <br /> en texte clair entre eux.

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}" /> 
<br /> 
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}" /> 

Si vous êtes toujours sur JSF 1.1 ou plus, alors vous devez envelopper HTML brut dans <f:verbatim> comme:

<f:verbatim><br /></f:verbatim> 
+0

où dois-je mettre ces Pavel

2

Que diriez-vous:

<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}"/> 
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}"/> 

(à savoir diviser la valeur et de mettre le caractère que vous voulez entre les deux)?

4

Si vous voulez une nouvelle ligne dans le navigateur, vous devez mettre "<br/>" dans le texte. Le navigateur l'interprétera alors correctement. Il ne comprend pas \ n.

+0

C'est la meilleure réponse! – Pavel

1

Ecrire une fonction personnalisée qui appelle ce morceau de code:

import java.util.StringTokenizer; 

public final class CRLFToHTML { 

    public String process(final String text) { 

     if (text == null) { 
      return null; 
     } 

     StringBuilder html = new StringBuilder(); 

     StringTokenizer st = new StringTokenizer(text, "\r\n", true); 

     while (st.hasMoreTokens()) { 
      String token = st.nextToken(); 

      if (token.equals("\n")) { 
       html.append("<br/>"); 
      } else if (token.equals("\r")) {  
       // Do nothing  
      } else {  
       html.append(token);  
      } 
     } 

     return html.toString(); 

    } 

} 
+0

Cela existe déjà dans la version de JSTL 'fn: replace'. D'ailleurs, ce n'est pas non plus nécessaire si vous utilisez 'escape =" false "' dans 'UIOutput' comme indiqué par Bozho. – BalusC

Questions connexes