Чего не следует делать, так это использовать скриптлеты. Слишком легко начать помещать логику в клиента, когда вы это делаете.
Настоящая красота JSTL заключается в том, что в JSP сложно внедрить логику.
Я предпочитаю Velocity как шаблонное решение в наши дни. Это лучше для разработчиков пользовательского интерфейса, потому что шаблон - это страница. Визуальное есть; Java-разработчики добавляют фрагменты, которые на самом деле получают динамические данные позже.