The same request might also generate a page in English or a page in Spanish, depending on the client's locale. The appropriate JSP page can be selected to do the display, depending on the logic inside the controlling servlet. The JSP page becomes a nice template view. By using a template engine intended for this exact use instead of the general-purpose JSP, the underlying design can be cleaner, the syntax clearer, the error messages more meaningful, and the tool more customizable. Too Tempting JSP makes it tempting to put Java code in the web page, even though that's considered bad design.
Template engines enforce good design.
Java Code Required Doing mundane things in JSP can actually demand putting Java code in the page. Using a template engine there's no Java code and no ugly syntax. Other template engines use other syntax styles. So far that has yet to occur. Here's the JSP code to iterate over a vector of ISP objects printing the name of each.