\\\\ $ convertito in \ $ nei dati del modello jsp
Domanda
Mi sono appena imbattuto in una stranezza nel mio codice JSP. Sembra che una doppia barra rovesciata seguita da un simbolo del dollaro o percentuale venga convertita in una singola barra rovesciata (più il simbolo).
Cioè, il seguente JSP:
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
\\#
\\$
\\%
\\^
viene visualizzato come:
\\#
\$
\%
\\^
Sto usando JDK 1.6.0_02 e Apache Tomcat 5.5.23 e 6.0.16 (due macchine).
È un bug in Tomcat? JDK? O è conforme a qualche opzione oscura nelle specifiche JSP? Ho provato a guardare le specifiche ma non sono riuscito a trovare nulla di utile.
Le soluzioni alternative sono abbastanza banali, ho solo pensato di presentare un bug nel caso fosse uno.
MODIFICA : Heh, StackOverflow gestisce anche le barre rovesciate
Soluzione
\ $ è nella spec (Sezione JSP.1.6 ). " Solo quando EL è abilitato per la pagina ...., un $ letterale può essere quotato di \ $.
\% sarà probabilmente perché " Un letterale <% è quotato da < \% " ;. Sospetto che il parser non stia cercando & Lt; prima del \%.