Вопрос по html, escaping, java, stringbuilder – Написание HTML в строке
Я пытаюсь написать пару небольших строк HTML в моем классе Java, который получает некоторые данные из другого API. Я получаю данные в виде строки JSON, а затем хотел бы отобразить некоторые из них на веб-странице.
Чтобы создать HTML, я стараюсь:
<code> 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(); </code>
Но в итоге отображается буквальная интерпретация HTML-тегов. Есть ли способ, которым я могу создать эту строку, чтобы теги оставались тегами, а не экранированными символами?
Класс Java является управляемым компонентом, поэтому в HTML я имею:
<code> <body> <div id="display"> #{PortalView.fullLeadData} </div> </body> </code>
Где fullLeadData - это строка с HTML.
конкатенация строк внутри метода добавления не очень хорошая практика.
ChadNC
обновил мой пост, отображая на этой веб-странице
Webster Gordon
Где именно вы пытаетесь отобразить этот текст?
Nitin Chhajer
2
ответа
<div id="display">
<h:outputText value="#{PortalView.fullLeadData}" escape="false"/>
</div>
Огромное спасибо, Гэмб!
Webster Gordon
Похожие вопросы
конкатенация строк внутри метода добавления не очень хорошая практика.
обновил мой пост, отображая на этой веб-странице
Где именно вы пытаетесь отобразить этот текст?