Мы работали с фримаркером. Он решал все наши задачи которые возникали. Однако это было 3-4 года назад.
Фримаркер можно было использовать вне servlet-контейнера. JSP 3-4 года назад выглядело более громоздко.
Плюс фримаркера — более простое написание библиотеки тэгов и использование closures (функций и макросов) в каком-то виде.
Grails не смотрели?
grails.org/doc/latest/guide/theWebLayer.html#viewsAndTemplates