JSP 中的正确 EL 表达式有什么新行或 HTML <br/>
?这是我的代码不起作用并在文本中以 '\n' 呈现。
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
既然要输出<br />
,只需执行以下操作:
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}<br />#{msg.TCW_SELECT_PART_ANALYSIS2}" escape="false" />
该属性escape="false"
是为了避免<br />
被 HTML 转义。
您甚至可以在单独的标签中显示两条消息,并将<br />
纯文本放在它们之间。
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}" />
<br />
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}" />
如果您仍在使用 JSF 1.1 或更早版本,则需要将纯 HTML 包装为<f:verbatim>
:
<f:verbatim><br /></f:verbatim>
如果您想在浏览器中换行,则需要<br/>
在文本中输入“”。然后浏览器将正确解释它。它不明白\n。
怎么样:
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}"/>
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
(即拆分值并将您想要的字符放在两者之间)?
编写一个调用这段代码的自定义函数:
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();
}
}
使用</br>
而不是 /n
IE。在双引号“”内允许使用</br>
例如。
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}</br>{msg.TCW_SELECT_PART_ANALYSIS2}"/>