Escribiendo una página JSP, ¿qué hace exactamente <c:out>
? He notado que lo siguiente ambos tienen el mismo resultado:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
c:out
escapa de los caracteres HTML para que pueda evitar las secuencias de comandos entre sitios.
Si person.name = <script>alert("Yo")</script>
el script se ejecutará en el segundo caso, pero no cuando se usa c:out
Como dijo Will Wagner, en la versión anterior de jsp siempre debe usar
c:out
para generar texto dinámico.Además, usando esta sintaxis:
puede mostrar el texto "Sin nombre" cuando el nombre es nulo.
fuente
c:out
también tiene un atributo para asignar un valor predeterminado si el valor deperson.name
resulta ser nulo.Fuente: out (Documentación generada por TLDDoc)
fuente
Puede habilitar explícitamente el escape de entidades XML mediante el uso de un atributo escapeXml value igual a true. FYI, es "verdadero" por defecto.
fuente
Las versiones anteriores de JSP no admitían la segunda sintaxis.
fuente