为什么我必须在这种情况下抑制 XML excaping
Why do I have to suppress XML excaping in this scenario
我正在使用将标记添加到文本文档的 servlet。
例如,它可能会产生以下句子
根据<span class="legalTerm">the plaintiff</span>
,合同从未签署
在我的 jsp 中,我有以下 css、html 和 jstl:
<style>
.legalTerm {
background: lightgrey;
color: blue;
font-size: 16px;
font-weight: bold;
text-align:center;
}
</style>
</head>
<body>
<c:out value="${document}"></c:out>
</body>
</html>
当我 运行 应用程序时,浏览器中显示的文档如下所示:
according to <span class="legalTerm">the plaintiff</span> the contract was never signed
当我查看页面源代码时,我看到:
according to <span class="legalTerm">the plaintiff</span> the contract was never signed
我能够通过抑制 XML 转义来获得正确的行为
<c:out value="${document}" escapeXml="false"></c:out>
我的问题是:应该这样做吗?
或者我是否遗漏了一些可以消除抑制 XML 转义的需要的东西?
是的,这是正确的行为,也是存在 escapeXML 的原因 -- 允许您防止引擎转义。 escapeXML 的默认值为 "true",因为典型的用例需要对其进行转义。
我正在使用将标记添加到文本文档的 servlet。 例如,它可能会产生以下句子
根据<span class="legalTerm">the plaintiff</span>
,合同从未签署
在我的 jsp 中,我有以下 css、html 和 jstl:
<style>
.legalTerm {
background: lightgrey;
color: blue;
font-size: 16px;
font-weight: bold;
text-align:center;
}
</style>
</head>
<body>
<c:out value="${document}"></c:out>
</body>
</html>
当我 运行 应用程序时,浏览器中显示的文档如下所示:
according to <span class="legalTerm">the plaintiff</span> the contract was never signed
当我查看页面源代码时,我看到:
according to <span class="legalTerm">the plaintiff</span> the contract was never signed
我能够通过抑制 XML 转义来获得正确的行为
<c:out value="${document}" escapeXml="false"></c:out>
我的问题是:应该这样做吗?
或者我是否遗漏了一些可以消除抑制 XML 转义的需要的东西?
是的,这是正确的行为,也是存在 escapeXML 的原因 -- 允许您防止引擎转义。 escapeXML 的默认值为 "true",因为典型的用例需要对其进行转义。