2013-04-11 21 views
6

Ich weiß, HTML-Zeichen zu vermeiden, in JSTL entkommen diese verwenden:JSTL escapeXml Standard

<c:out value="${my.value}" escapeXml="false" /> 

Ich frage mich, ob es eine Seite Direktive existiert escapeXml falsch standardmäßig zu machen, also muss ich angeben, es nicht auf, dass bestimmte Seite.

+1

Seien Sie vorsichtig mit XSS-Angriffslöchern, wenn Sie benutzergesteuerte Eingaben erneut anzeigen. – BalusC

Antwort

14

Das obige tut nicht Escape HTML, seit escapeXml ist auf false festgelegt. Standardmäßig ist escapeXml wahr und das <c:out>-Tag entzieht sich so dem HTML. Wenn Sie nicht entkommen wollen, können Sie einfach

${my.value} 

und vermeiden <c:out> vollständig verwenden, da der einzige Zweck <c:out> ist HTML zu entkommen.

+3

Obwohl <} c: out value = "$ {my.value}" escapeXml = "false" /> 'eindeutig dokumentiert, dass Sie * beabsichtigten * den Wert ohne Escaping einzufügen, während' $ {my.value} 'könnte sei ein Fehler, wo du vergessen hast, '' zu benutzen. – Andreas