Struts 1 был фреймворком, который добавил дополнительную структуру над приложением JSP / сервлет. Я хотел бы разрабатывать со Struts, а не с сырым JSP, и на самом деле многие разработчики, использующие JSP до появления Struts, разработали свои собственные эквивалентные платформы.
JSF фактически является стандартизированным эквивалентом Struts 1, на разработку которого сильно повлияли создатели Struts. Таким образом, JSF является более или менее прямой заменой Struts, которая в принципе должна широко поддерживаться поставщиками Java EE App Server. Принятие JSF не является единообразным, есть восторженные пользователи и другие люди, которые придерживаются Struts 1. У меня нет статистики, чтобы сказать вам, какие технологии используются более широко.
Обе структуры Struts, JSF и Model / View / Controller, и ни один из них не касаются того, как реализовать Модель - в частности, они мало говорят о постоянстве, поэтому вам нужно что-то в дополнение к Struts / JSF, где Hibernate и JPA войти.
На мой взгляд, новая тенденция заключается в создании пользовательских интерфейсов с использованием Dojo или JQuery с помощью служб REST. Похоже, что Struts 2 пытается решить эту проблемную область с помощью богатых виджетов в браузере. Это интересно и заслуживает изучения. Лично я не использовал Struts 2 и не сталкивался с ним профессионально, вероятно, потому что я работаю с продуктами, которые специализируются на Dojo и iWidgets. Я планирую уделить внимание Struts 2.