考虑以下JSP:

<param name="FlashVars" value="${flashVars}" />
${flashVars}的值包含“&”号,需要在输出前进行编码。相反,JSP希望${flashVars}的值是HTML的一部分,并逐字输出&符,从而导致HTML损坏。

我发现如果这样写,就可以得到要编码的值:
<param name="FlashVars" value="<c:out value="${flashVars}"/>" />

但这看起来确实很丑陋,并且使我的IDE无法启动。有没有更好的方法来获得相同的结果?

最佳答案

使用 fn:escapeXml()

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

10-04 14:52