2009-12-15 9 views
5

¿Cuál sería la expresión EL correcta en JSP para tener una nueva línea o HTML <br/>? Aquí está mi código que no funciona y se procesa con '\ n' en el texto.¿Cómo poner "nueva línea" en el Lenguaje de Expresión de JSP?

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

es probable que desee utilizar
kgiannakakis

+0

he añadido la etiqueta "JSF", suponiendo que desde la Bozho

+0

@Bozho: son las caras de Oracle ADF, por lo que tiene razón. – BalusC

Respuesta

12

Desde desea dar salida <br />, simplemente:

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

El atributo escape="false" está ahí para evitar que se escaparon del HTML <br />.

Incluso puede mostrar los dos mensajes en etiquetas separadas y poner el <br /> en texto sin formato entre ellos.

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

Si todavía estás en JSF 1.1 o mayor, entonces usted necesita para envolver HTML plano en <f:verbatim> como:

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

donde pongo estos Pavel

2

¿Qué tal:

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

(es decir, dividir el valor y poner el carácter que desea entre los dos)?

4

Si desea una nueva línea en el navegador, entonces usted necesita para poner "<br/>" en el texto. El navegador lo interpretará correctamente. No comprende \ n.

+0

¡Esta es la mejor respuesta! – Pavel

1

escribir una función personalizada que llama a este trozo de código:

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

Esto ya existe en el sabor de JSTL 'fn: replace'. Además, eso tampoco es necesario si usas 'escape =" false '' en 'UIOutput' como apunta Bozho. – BalusC

Cuestiones relacionadas