In JSTL/JSP when do I have to use and when can I just say ${myVar}

Source :

In JSTL/JSP when do I have to use and when can I just say ${myVar}

I’ve been doing this the whole time in my JSP code:

<c:out value="${myVar}"/>

Today I just realized for the first time that I seem to be able to use this shorter version just as well:


It works without !

Perhaps this is because my page is declared like this:

<%@ page language="java" contentType="text/html; 
charset=utf-8" pageEncoding="utf-8" isELIgnored="false" %>

So, my question is, can I replace in my code with this shorter version? Is there any reason to keep using ? Or are there places where I might still need it?


does more than simply outputting the text. It escapes the HTML special chars.
Use it (or ${fn:escapeXml()}) every time you’re not absolutely sure that the text doesn’t contain any of these characters: “, ‘, , &. Else, you’ll have invalid HTML (in the best case), a broken page, or cross-site scripting attacks (in the worst case).

I’ll give you a simple example so that you understand.
If you develop a forum, and someone posts the following message, and you don’t use to display this message, you’ll have a problem:

while (true) alert("problem");


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.