在字符串中编写html

时间:2012-05-01 19:12:19

标签: java html escaping stringbuilder

我正在尝试在我的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的字符串。

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

您可能需要替换转义序列。

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