Я бы использовал множество технологий до XSLT, включая такие вещи, как FreeMarker, Velocity, Усы , MVEL , Groovy и т. Д. Я предпочитаю FreeMarker, а не Velocity, потому что FM лучше обработка ошибок.
Многое зависит от того, насколько умными вы хотите, чтобы ваши шаблоны были: усы создают очень глупые шаблоны, сборщики Groovy допускают безумно умные.
Если у вас есть большой опыт в XSLT или вы все представили как XML, то XSL подойдет - его неправильно понимают и не так плохо, как говорят люди, но он многословен, и для генерации HTML это точно Похоже, другие варианты более уместны.