Подтвердить что ты не робот

Как кодировать HTML на языке выражения JSP?

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

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

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

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

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

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

4b9b3361

Ответ 1

Используйте fn:escapeXml().

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