web-dev-qa-db-fra.com

JSP: balise <c: out> de JSTL

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>
108
Steve Kuo

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

149
krosenvold

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.

123
alexmeia

c:out _ possède également un attribut permettant d’attribuer une valeur par défaut si la valeur de person.name arrive à être nul.

Source: out (documentation générée par TLDDoc)

5
Chris Serra

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".

5
Greenhorn

Les anciennes versions de JSP ne prenaient pas en charge la deuxième syntaxe.

4
Will Wagner