如何在JSP表达式语言中进行HTML编码?

发布于 2024-10-08 22:07:30 字数 421 浏览 3 评论 0原文

考虑以下 JSP 片段:

<param name="FlashVars" value="${flashVars}" />

${flashVars} 的值包含 & 符号,需要在输出之前进行编码。相反,JSP 期望 ${flashVars} 的值是一段 HTML,并逐字输出 & 符号,从而导致错误的 HTML。

我发现如果我这样写,我可以获得要编码的值:

<param name="FlashVars" value="<c:out value="${flashVars}"/>" />

但这看起来真的很难看,并且会混淆我的 IDE 启动。有没有更好的方法来获得相同的结果?

Consider the following piece of JSP:

<param name="FlashVars" value="${flashVars}" />

The value of ${flashVars} contains ampersands and needs to be encoded before it is output. Instead, JSP expects the value of ${flashVars} to be a piece of HTML and outputs the ampersands verbatim, resulting in bad HTML.

I found out that I can get the value to be encoded if I write it like this:

<param name="FlashVars" value="<c:out value="${flashVars}"/>" />

But this looks really ugly and confuses my IDE to boot. Is there a better way to get the same result?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扎心 2024-10-15 22:07:30

使用 fn:escapeXml()

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<param name="FlashVars" value="${fn:escapeXml(flashVars)}" />

Use fn:escapeXml().

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<param name="FlashVars" value="${fn:escapeXml(flashVars)}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文