I first started playing around with JSTL. This was more or less by accident because I use NetBeans and it creates a project with a starter page that incorporates JSTL. It seemed easy enough to get started, and I was able to generate an app that uses the Google Maps API quite easily, but when it came to doing more complicated things like building a table using JSTL to render back-end data, red flags started going up because there was more and more dependence of the view on the data layer. In other words, it gives rise to a non-MVC app where there isn't a separate model, and if it changes, the view must change in lockstep. I decided I at least needed a MVC paradigm, where the model is nicely separated from the view. I also decided that, in general, there wasn't that much benefit to using JSTL over JSP.
By the way, Java IDEs like NetBeans nowadays do a great job of generating everything you need in a project to develop a web app. There's a lot of hype about Ruby on Rails and how easy it is to generate your project and do iterative development, but it's just as easy with NetBeans: you just hit one button to compile, redeploy and run, and it all happens quite quickly. The only downside is that if I make changes to the HTML, I find I have to rebuild the entire project, rather than building incrementally, but even this is not to much of an issue. Of course, there are other reasons why people like Ruby on Rails. I'll have more to say about it in an upcoming post.