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

Mar*_*ijn 16 java jsp html-encode el

考虑下面的JSP:

<param name="FlashVars" value="${flashVars}" />
Run Code Online (Sandbox Code Playgroud)

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

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

<param name="FlashVars" value="<c:out value="${flashVars}"/>" />
Run Code Online (Sandbox Code Playgroud)

但这看起来很丑陋,让我的IDE混乱.有没有更好的方法来获得相同的结果?

Bal*_*usC 27

使用fn:escapeXml().

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