MN *_*hal 2 html jsp jstl scriptlet
我正在使用 JSTL 从数据库中显示我的数据,其中记录还包含一些特殊字符。当我使用 JSTL 显示我的记录时,如下所示:
<c:out value="${record.fname}" escapeXml="false" />
Run Code Online (Sandbox Code Playgroud)
然后我必须包含escapeXml="false"在我的代码中,以便在我的浏览器窗口中显示特殊字符。但是当我删除它时,它只显示我的 HTML 代码。但是当我使用 scriptlet 显示我的记录时:
<%= record.getFname() %>
Run Code Online (Sandbox Code Playgroud)
它仅自动显示特殊字符,而不显示相应的 HTML 代码。
我想提一下我已经完成了我的工作,但只是有点困惑哪个更好。
c:out将 escapeXml 默认设置为true,这样做的目的之一是避免跨站点脚本,例如阻止执行script或任何其他html标签并将它们显示为文本。因此,您可以说这是 JSTL 中的一个额外功能。如果要将c:out输出呈现为普通 Html 内容,则必须显式设置escapeXml为 false。但是<%= record.getFname() %>,这相当于 plain out.println,它没有这种转义 Html 标签的能力。