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

2022-09-02 12:41:00

请考虑以下 JSP 部分:

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

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

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

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

但这看起来非常丑陋,并且使我的IDE启动感到困惑。有没有更好的方法来获得相同的结果?


答案 1

使用 fn:escapeXml()

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

答案 2