Most of the hate-bordering rants on JSP that I see have nothing to do with the JSP technology itself. The problems they face arise from anti-patterns: spaghetti code, lack of separation of concern, or simply outdated version of JSP spec.
What would be cool for the next JSP spec update is a way to supply partial XML directly from the controller, like that in Lift web framework. With CDI, yeah. Something like:
@Produces
@XmlNode
@Named("calendar")
def getCalendar:XmlNode = {
return Calendar
Monday to Sunday
}