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

Rip*_*ash 0 html xhtml jsp textarea

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

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

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

Bal*_*usC 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>
Run Code Online (Sandbox Code Playgroud)

要么

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

它会根据每个默认逃逸&,以&amp;使得例如&reg;最终成为&amp;reg;这种方式,它会显示&reg;.