Я думаю, что важно отметить, что по сравнению с JSP/ASP.NET в качестве шаблонизатора Mechanisim, Velocity/NVelocity действительно «защищает» от беспокойства.
С <% ..%> JSP/ASP.NET разрешен любой код Java/.NET. Вот почему иногда вы видите код бизнес-логики в этих файлах.
С Velocity/NVelocity вы не можете вставлять длинную серию кода. Вместо этого вы действительно вынуждены передавать вычисляемые значения, которые Velocity/NVelocity собирает и отображает их в соответствии с тем, как был разработан шаблон.
Другое дело, что они могут работать вне среды веб-контейнера (по крайней мере, Velocity может AFAIK). Представьте, что вы разработали шаблон отчета с JSP/ASP.NET. Он отлично работает в Интернете. И вдруг появляется запрос на изменение, чтобы это было сделано из приложения для настольных компьютеров. Вместо того, чтобы встраивать в него веб-контейнер, вы можете инициализировать Velocity/NVelocity, вычислить значения, а затем визуализировать шаблон.
вы спрашиваете «? зачем использовать двигатель шаблона» или «зачем использовать Velocity в качестве механизма шаблонов?»? Если последнее, ответ будет «вы не должны - есть новые, лучшие двигатели». –