如何阻止html textarea将html实体解释为其字符

时间:2010-09-03 14:58:05

标签: html jsp xhtml textarea

我有一个html textarea,用于显示数据库中的字符串。可以编辑textarea,并将任何更改保存到数据库中。

问题是当它收到实体& reg;在字符串中,它将它们转换为字符,然后在保存文本时,字符会覆盖实体。例如:数据库将返回字符串Microsoft& reg;它将显示为Microsoft®,然后以这种方式保存。有没有办法强制textareas不解释实体?

跟进:我现在的想法是,从数据库中获取字符串替换所有'&'与'& amp;'。但我仍然想知道是否有办法阻止textareas转换他们收到的字符串。

1 个答案:

答案 0 :(得分:6)

所以你想要转义HTML实体?您可以使用JSTL <c:out>fn:escapeXml()

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<textarea><c:out value="${bean.text}" /></textarea>

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<textarea>${fn:escapeXml(bean.text)}</textarea>

默认情况下,它会在每个&下转移到&amp;,以便例如&reg;最终成为&amp;reg;,这样它就会显示< / em> as &reg;