2013-04-11 15 views
6

znam, aby uniknąć ucieczki znaków HTML w JSTL użyć tego:JSTL escapeXml domyślny

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

Zastanawiam się, czy istnieje dyrektywy page aby escapeXml fałszywe domyślnie, więc nie muszę się określić go na tym konkretna strona.

+1

Ostrożnie z otworami ataku XSS, gdy wyświetlasz ponownie dane wprowadzane przez użytkownika. – BalusC

Odpowiedz

14

Powyższe dotyczy nie escape HTML, ponieważ escapeXml jest ustawione na false. Domyślnie escapeXml jest prawdziwe, a znacznik <c:out> wymyka się więc HTMLowi. Jeśli nie chcesz uciec, można po prostu użyć

${my.value} 

i unikać <c:out> całkowicie, ponieważ jedynym celem <c:out> jest ucieczka HTML.

+3

Chociaż użycie '' wyraźnie dokumentuje, że * zamierzałeś * wstawić wartość bez ucieczki, podczas gdy '$ {my.value}' może być błędem, gdy zapomniałeś * użyć ''. – Andreas