En écrivant une page JSP, que fait exactement le <c:out>
faire? J'ai remarqué que les deux suivants ont le même résultat:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
c:out
Échappe aux caractères HTML afin que vous puissiez éviter les scripts intersite.
si person.name = <script>alert("Yo")</script>
le script sera exécuté dans le second cas, mais pas avec c:out
Comme dit Will Wagner, dans l'ancienne version de jsp, vous devriez toujours utiliser c:out
pour afficher du texte dynamique.
De plus, en utilisant cette syntaxe:
<c:out value="${person.name}">No name</c:out>
vous pouvez afficher le texte "Pas de nom" lorsque nom est nul.
c:out
_ possède également un attribut permettant d’attribuer une valeur par défaut si la valeur de person.name
arrive à être nul.
Vous pouvez explicitement activer l'échappement d'entités XML en utilisant un attribut d'échappement escapeXml égal à true. Pour info, c'est par défaut "vrai".
Les anciennes versions de JSP ne prenaient pas en charge la deuxième syntaxe.