我有一个html textarea,用于显示数据库中的字符串。可以编辑textarea,并将任何更改保存到数据库中。
问题是当它收到实体& reg;在字符串中,它将它们转换为字符,然后在保存文本时,字符会覆盖实体。例如:数据库将返回字符串Microsoft& reg;它将显示为Microsoft®,然后以这种方式保存。有没有办法强制textareas不解释实体?
跟进:我现在的想法是,从数据库中获取字符串替换所有'&'与'& amp;'。但我仍然想知道是否有办法阻止textareas转换他们收到的字符串。
答案 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>
默认情况下,它会在每个&
下转移到&
,以便例如®
最终成为&reg;
,这样它就会显示< / em> as ®
。