Quel est le moyen le plus simple de remplacer les caractères guillemets par la séquence \" à l'intérieur des valeurs de chaînes de caractères ?
Réponses
Trop de publicités?Ce sera le fn:replace()
fonction.
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\\"')}
Sans rapport Pour répondre à la question concrète, il s'agit d'une exigence récurrente afin d'éviter les HTML malformés lors de la réaffichage des entrées contrôlées par l'utilisateur en tant qu'attribut HTML. Normalement vous devez utiliser <c:out>
o fn:escapeXml()
pour cela. Par exemple.
<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />
Il ne tient pas seulement compte des guillemets, mais aussi de tous les autres caractères spéciaux XML tels que <
, >
, &
etc.
Voir aussi :
Troy Barlow
Points
184