【问题标题】:Writing html in a string在字符串中编写html
【发布时间】:2012-05-02 03:22:34
【问题描述】:

我正在尝试在我的 java 类中编写几行 html,以从另一个 API 获取一些数据。我以 JSON 字符串形式获取数据,然后想在网页上显示其中的一些数据。

要创建 HTML,我尝试:

        StringBuilder sb = new StringBuilder();
    for(int i=0;i<leads.size();i++){
        sb.append("<p>Name: "+leads.get(i).getFirstName()+" "+leads.get(i).getLastName()+"</p>");
        sb.append("<p>Email: "+leads.get(i).getEmail()+"</p>");
        sb.append("<br />");
    }
    fullLeadData = sb.toString();

但最终显示的是对 html 标签的字面解释。有没有办法可以创建此字符串,以便标签将保留为标签而不是转义字符?

java 类是托管 bean,所以在 html 中我有:

    <body>
    <div id="display">
        #{PortalView.fullLeadData}
    </div>
</body>

其中 fullLeadData 是带有 html 的字符串。

【问题讨论】:

  • 您究竟想在哪里显示此文本?
  • 更新了我的帖子,显示在那个网页上
  • 在 append 方法中连接字符串不是一个很好的做法。

标签: java html escaping stringbuilder


【解决方案1】:

好像您正在使用 JSF。试试这个:

<div id="display">
    <h:outputText value="#{PortalView.fullLeadData}" escape="false"/>
</div>

【讨论】:

    【解决方案2】:

    您可能需要替换转义序列。常见的是

    ‘&’ (ampersand)  ‘&amp;‘
    ‘"’ (double quote)  ‘&quot;‘
    ”’ (single quote)  ‘&#039;‘
    ‘<’ (less than)  ‘&lt;‘
    ‘>’ (greater than)  ‘&gt;‘
    

    【讨论】:

      猜你喜欢
      • 2014-04-28
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 2012-09-23
      • 1970-01-01
      • 2013-03-12
      相关资源
      最近更新 更多