考虑以下JSP:
<param name="FlashVars" value="${flashVars}" />
的值${flashVars}包含“&”号,需要在输出前进行编码。相反,JSP期望的值${flashVars}是一段HTML,并逐字输出&符,从而导致HTML损坏。
${flashVars}
我发现如果这样写,就可以得到要编码的值:
<param name="FlashVars" value="<c:out value="${flashVars}"/>" />
但这看起来确实很丑陋,并且使我的IDE无法启动。有没有更好的方法来获得相同的结果?
使用fn:escapeXml()。
fn:escapeXml()
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ... <param name="FlashVars" value="${fn:escapeXml(flashVars)}" />