一尘不染

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

jsp

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

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

跟进:我现在的想法是,在从数据库中获取字符串时,将所有的’&’替换为’&’。但是我仍然想知道是否有一种方法可以阻止textareas转换它们接收的字符串。


阅读 374

收藏
2020-06-08

共1个答案

一尘不染

因此,您想转义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;并以此方式 显示&reg;

2020-06-08