Функция JSTL для замены символов цитат внутри строки?

Каков самый простой способ заменить символы кавычки с помощью "последовательности внутри строк"?

Ответ 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, такие как <, >, & и т.д.

См. также:

Ответ 2

Используйте javascript replace (с/g для замены всех вхождений)

string.replace(/"/g, '\\"')