JSP: JSTL's < c: out > étiquette
Question
En écrivant une page JSP, que fait exactement le < c: out >
? 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>
La solution
c: out
échappe aux caractères HTML afin d'éviter les scripts intersite.
if person.name = < script > alert (" Yo ") < / script >
le script sera exécuté dans le second cas, mais pas avec c: out
Autres conseils
Comme l'a dit Will Wagner, dans l'ancienne version de jsp, vous devriez toujours utiliser c: out
pour générer du texte dynamique.
De plus, en utilisant cette syntaxe:
<c:out value="${person.name}">No name</c:out>
vous pouvez afficher le texte "Aucun nom". lorsque le nom est nul.
c: out
possède également un attribut permettant d'affecter une valeur par défaut si la valeur de nom de personne.nom
s'avère être NULL.
Vous pouvez explicitement activer l'échappement d'entités XML en utilisant un attribut escapeXml égal à true. Pour info, il est par défaut "vrai".
Les anciennes versions de JSP ne prenaient pas en charge la deuxième syntaxe.