如何在Java中将文本打印为HTML

4

在此提前道歉:尽管进行了大量的研究,我仍然不确定如何构建以下问题:

我正在使用Java/JBoss,并设置一个类来读取XML文件,解析它,获取各个节点值以构建HTML字符串。现在我所需要做的就是将该HTML打印/插入到DOM中。

我曾尝试过:

<div id='wrapper'>#{MyClass.methodThatReturnsAnHTMLString()}</div>

但是HTML只是以转义文本的形式出现在屏幕上,源代码如下:
<div id='wrapper'>
    &lt;div class='item'&gt;content&lt;/div&gt;
</div>

想法是什么? 谢谢。

4
不要这样做。相反,学习如何将数据仅放入HttpRequest对象中,并在JSP(或模板等)页面中访问它们。将演示代码与业务逻辑分离。 - Marvo
我认为它默认添加了转义(避免XSS攻击)这是一个关于该主题的好资源http://pukkaone.github.com/2011/01/03/jsp-cross-site-scripting-elresolver.html - Eran Medan
你可能想要点赞和接受答案。 - Kazekage Gaara
3个回答

1
尝试替换


>#{MyClass.methodThatReturnsAnHTMLString()}

<c:out value="${MyClass.methodThatReturnsAnHTMLString}" escapeXml="false"/>

0

如果你使用JSTl来打印输出,会出现这种情况:

<c:out value="${body.content}" />

它基本上是用于转义HTML/XML内容。

如果您使用脚本,则应该可以正常工作。


0

你可以尝试 this

编辑

org.apache.commons.lang包提供了一个名为StringEscapeUtils的类,它具有帮助Java、JavaScript、HTML、XML和SQL转义和反转义字符串的方法。考虑到您的情况,我认为这可能对您有用。 :-)


通常认为这样回答是不好的做法。如果您在回答中添加链接,请解释您所链接的内容(文档名称/描述),并包括摘要或提取部分,以显示它可能有用的原因。 - David
是的,我遇到过这个问题,但似乎无法导入它(没有从.commons中的.lang文件)。 - user724724
你是否正确下载了jar包?在尝试将其导入项目之前,是否已经将jar包导入到你的IDE中了? - Kazekage Gaara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接