Как HTML-кодировать на языке выражений JSP? - PullRequest
16 голосов
/ 24 декабря 2010

Рассмотрим следующий фрагмент JSP:

<param name="FlashVars" value="${flashVars}" />

Значение ${flashVars} содержит амперсанды и должно быть закодировано перед выводом.Вместо этого JSP ожидает, что значение ${flashVars} будет частью HTML, и дословно выводит амперсанды, что приводит к неправильному HTML.

Я обнаружил, что могу получить закодированное значение, если напишу его какэто:

<param name="FlashVars" value="<c:out value="${flashVars}"/>" />

Но это выглядит очень уродливо и сбивает с толку мою IDE для загрузки.Есть ли лучший способ получить тот же результат?

1 Ответ

27 голосов
/ 24 декабря 2010

Использование fn:escapeXml().

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