Ответ 1
Это будет fn:replace()
.
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\\"')}
Не привязанный к конкретному вопросу, это часто повторяющееся требование, чтобы предотвратить искаженный HTML при повторном отображении управляемых пользователем входных данных в качестве атрибута HTML. Обычно вы должны использовать <c:out>
или fn:escapeXml()
для этого. Например.
<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />
Он учитывает не только кавычки, но и все другие специальные символы XML, такие как <
, >
, &
и т.д.