Ответ 1
Используйте fn:escapeXml()
.
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<param name="FlashVars" value="${fn:escapeXml(flashVars)}" />
Рассмотрим следующий фрагмент 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)}" />