What would be right EL expression in JSP to have a new line or HTML's <br/>
?
Here's my code that doesn't work and render with '\n' in text.
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
What would be right EL expression in JSP to have a new line or HTML's <br/>
?
Here's my code that doesn't work and render with '\n' in text.
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
Since you want to output <br />
, just do:
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}<br />#{msg.TCW_SELECT_PART_ANALYSIS2}" escape="false" />
The attribute escape="false"
is there to avoid the <br />
being HTML-escaped.
You can even display the two messages in separate tags and put the <br />
in plain text between them.
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}" />
<br />
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}" />
If you're still on JSF 1.1 or older, then you need to wrap plain HTML in <f:verbatim>
like:
<f:verbatim><br /></f:verbatim>
If you want a new line in the browser then you need to put "<br/>
" in the text. The browser will then interpret it correctly. It does not understand \n.
How about:
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}"/>
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
(i.e. split the value and put the character you want between the two)?
Write a custom function that calls this piece of 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();
}
}