Ну, любой фреймворк спроектирован (большинство из них) для того, чтобы обеспечить некоторую простоту использования.Это должен быть драйвер, когда вы выбрали один.
В вашем случае я могу прокомментировать Struts2 .Использование Struts2 обеспечивает и обеспечивает лучший дизайн с точки зрения разделения ваших обязанностей кода (контроллер представления модели).Таким образом, общий дизайн приложения хорошо сформирован.Вдобавок к этому, фреймворк предоставляет множество интересных функций , таких как перехватчики, готовые назначения параметров запроса, валидация, теги пользовательского интерфейса и т. Д., Которыми вы можете воспользоваться.
Так что если вы все еще вда, начальный этап - изучите различные доступные структуры и взвесьте их с точки зрения того, какую легкость вы ищете.