Esta reseña ha sido analizado por expertos así se asegura la veracidad de nuestra esta noticia.
Solución:
No funciona porque el es un carácter de escape en Java string. Para representarlo literalmente, necesita escapar con otro
otra vez. También el
"
es un carácter especial en EL, también necesita escaparlo para representarlo literalmente. Entonces, la sintaxis correcta habría sido:
Pero deberías Realmente estar usando fn:escapeXml()
para prevenir XSS. No solo escapa de las comillas, sino también de otros caracteres.
Ver también:
- Prevención de XSS en la aplicación web JSP/Servlet
Lo estás haciendo mal (con fn:reemplazar).
La forma correcta es:
(actually tested code - works 100%)
Editar: Después de pensar más:
- el camino usando fn: escapeXml (según lo escrito por BalusC) también funciona y se ve mejor (sin etiquetas anidadas)
- usando fn:reemplazar imitar fn: escapeXml está pidiendo problemas. Tú voluntad olvide incluir algún carácter que deba escaparse. Simplemente use el existente, probado y comprobado fn: escapeXml (o c:fuera)
Es posible que tenga un error tipográfico: no veo un paréntesis de cierre allí. Prueba esto:
$fn:replace(news.title, """, "\"")
Además, ¿está tratando de SALIR los resultados o está tratando de actualizar news.title
así que la próxima vez que acceda news.title
el reemplazo esta en su lugar? Esto funcionará para generar el resultado, pero no para reemplazar el valor real: news.title
no será cambiado por esta llamada.
Al final de la post puedes encontrar las referencias de otros programadores, tú todavía tienes el poder mostrar el tuyo si dominas el tema.