什么是正确的在JSP表达式中有一个新的行或HTML的<br/>
? 这里是我的代码,不工作,并在文本中使用'\ n'呈现。如何在JSP的表达式语言中添加“新行”?
<af:outputText value="#{msg.TCW_SELECT_PART_ANALYSIS}\n#{msg.TCW_SELECT_PART_ANALYSIS2}"/>
什么是正确的在JSP表达式中有一个新的行或HTML的<br/>
? 这里是我的代码,不工作,并在文本中使用'\ n'呈现。如何在JSP的表达式语言中添加“新行”?
<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>
我在哪里放这些
如何:
<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();
}
}
这已经存在于JSTL'fn:replace'的味道中。此外,如果您在Boomeho指出的'UIOutput'中使用'escape =“false”',那也不需要。 – BalusC 2009-12-15 18:56:03
你可能想使用
– kgiannakakis 2009-12-15 15:58:02
我添加了“JSF”标签,从
Bozho
2009-12-15 15:58:59
@Bozho:这是Oracle ADF的面孔,所以你是对的。 – BalusC 2009-12-15 19:20:16