考虑以下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)}" />