the in-container jstl interpreter functionality is great. And where there are greats things there are also less great things. Some of my frustrations on jstl:
no way to cast objects. In some cases this would be very welcome. For example when you have a superclass Item and some extending, more specifiek objects like AnITem and AnotherItem. In code you would be working with Item objects in general. In your view you need to have them casted towards a specifiek one. No way to do this in jstl so you need to cast in the controller which is not cool when you're working with a collection that could contain multiple kind of items.
Another one is the way you can't use numbers as a key for map collections. Need to provide another getter returing a string for that.