La fonction JSTL pour remplacer les guillemets à l'intérieur d'une chaîne?

Quelle est la façon la plus simple de remplacer les caractères guillemets par des valeurs " sequence inside string?

10
demandé sur Dims 2012-01-17 20:23:35

2 réponses

sera le fn:replace() fonction.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\"')}

sans rapport avec à la question concrète, il s'agit d'une exigence souvent récurrente afin de prévenir les HTML mal formés lorsque l'utilisateur redisplaye l'entrée contrôlée par l'utilisateur en tant qu'attribut HTML. Normalement, vous devez utiliser <c:out> ou fn:escapeXml() pour ceci à la place. E. g.

<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />

il tient compte non seulement des citations, mais aussi de tous les autres caractères spéciaux XML comme <,>,&, etc.

Voir aussi:

15
répondu BalusC 2017-05-23 12:00:20

Utiliser javascript remplacer (avec /g pour remplacer toutes les occurrences)

string.replace(/"/g, '\"')
-7
répondu Troy Barlow 2012-01-17 16:28:38