Практика смешивания кода и данных не одобряется в Java гораздо больше, чем в Ruby. Рекомендуемая практика Java состоит в том, чтобы использовать taglibs вместо блоков кода. Я упоминаю об этом только потому, что если вы пишете свои шаблоны Java так же, как типичные шаблоны Ruby, другие разработчики Java (я полагаю, вы работаете в команде), вероятно, будут жаловаться.
Так что теперь, чтобы ответить на ваш вопрос ..... стандартные JSP вместе с JSTL и EL на самом деле не плохое решение. Но для большей краткости, проверьте GSP, шаблонное решение, используемое Grails. Вы можете использовать GSP в любом веб-приложении на Java, то есть вам не нужно использовать Groovy / Grails.