【问题标题】:How to put "new line" in JSP's Expression Language?如何在 JSP 的表达式语言中添加“新行”?
【发布时间】:2010-12-26 20:57:49
【问题描述】:

在 JSP 中正确的 EL 表达式有什么新行或 HTML 的 <br/>? 这是我的代码不起作用并在文本中以 '\n' 呈现。

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

【问题讨论】:

  • 你可能想使用
  • 我添加了“jsf”标签,假设它来自
  • @Bozho:这是 Oracle ADF 的面孔,所以你是对的。
  • 是的,我假设是 ADF,但谁知道可以为自定义标签库配置哪些前缀 :)

标签: java jsp jsf el


【解决方案1】:

既然你想输出&lt;br /&gt;,那就做吧:

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

escape="false" 属性用于避免 &lt;br /&gt; 被 HTML 转义。

您甚至可以在单独的标签中显示两条消息,并将&lt;br /&gt; 以纯文本形式放在它们之间。

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

如果您仍在使用 JSF 1.1 或更早版本,则需要将纯 HTML 包装在 &lt;f:verbatim&gt; 中,例如:

<f:verbatim><br /></f:verbatim>

【讨论】:

  • 我应该把这些
【解决方案2】:

如果您想在浏览器中换行,则需要在文本中输入“&lt;br/&gt;”。然后浏览器将正确解释它。它不明白\n。

【讨论】:

  • 这是最好的答案!
【解决方案3】:

怎么样:

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

(即拆分值并将您想要的字符放在两者之间)?

【讨论】:

    【解决方案4】:

    编写一个调用这段代码的自定义函数:

    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 的风格中。此外,如果您在 UIOutput 中使用 escape="false",也不需要 Bozho 指出的。
    【解决方案5】:

    使用&lt;/br&gt; 代替 /n

    即。在双引号“”内允许使用&lt;/br&gt;

    例如。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多