I've been trying to understand BalusC's answer with regard to debuggability, and I still cannot figure out exactly how jstl tags are more easily debugged than scriptlets.
When I think of debugging, I think of the ability to step through the code and determine at any given point what variables are loaded into memory, and see their contents. With jstl, I cannot set up breakpoints of any kind, and if any part of it breaks, pieces of whatever form I'm working on go missing. I'm not sure which is worse: a blank page, or a half-loaded page. I've seen situations where when the jstl fails, OTHER parts of the form go missing rather than only the parts it affects. In either case, it's impossible to really see what the problem is.
With scriptlets, I can place breakpoints, and see any point I'd like in an IDE. Even if I'm not using such a feature, I can print to the console any part of the procedure I want to see and figure it out later. If the page fails and shows me a blank page, annoying as that may be, I can at least step through and find out exactly which line it fails on.
With jstl, I'm completely in the dark. Iterating through a collection really feels like a black box where you hope everything comes out ok rather than actually being able to step through and watch it happen. It makes you feel powerless.
I admit, jstl is cleaner, and looks more intuitive, but that one glaring problem I have is the inability to really debug anything on the page. Am I completely mistaken here? Am I just missing the nice happy way to debug what's going on? Or is my approach to debugging incorrect, and in need of rethinking?
I've googled the issue, but I can't really seem to come up with any direct answers... If anyone has any insight on this, it would be really helpful. I want to use jstl in lieu of scriptlets, and this is the one glaring thing keeping me back...