我有一个html textarea,用于显示数据库中的字符串。可以编辑文本区域,并将所有更改保存到数据库。
问题在于,当它收到实体® 在字符串中,它将它们转换为字符,然后在保存文本时,字符将覆盖实体。例如:数据库将返回字符串Microsoft®。将会显示为Microsoft®,然后以这种方式保存。有没有办法强迫文本区域不解释实体?
跟进:我现在的想法是,在从数据库中获取字符串时,将所有的’&’替换为’&’。但是我仍然想知道是否有一种方法可以阻止textareas转换它们接收的字符串。
因此,您想转义HTML实体吗?您可以使用JSTL <c:out>或fn:escapeXml()。
<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;并以此方式 显示 为®。
&
&
®
&reg;