Я тоже большой поклонник Spring MVC - особенно когда он используется в сочетании с Spring Webflow, что просто потрясающе. Теперь Webflow можно использовать с другими веб-фреймворками, но наиболее естественно он подходит для Spring MVC.
В моем случае я перешел из Struts (1) в Spring MVC. У нас было много застроенной инфраструктуры для использования Struts. Одна вещь, которую я недооценил при написании новых страниц в Spring MVC, это то, сколько времени мы потратили бы на переосмысление этой инфраструктуры. Я говорю о проверке, общей логике и т. Д.
Теперь я немного знаю о JSF. Похоже, у вас возникла эта проблема (как и в случае с любой веб-платформой). Тот факт, что этот процесс все еще продолжается, может быть реальной проблемой. Вы не можете игнорировать тот факт, что вы будете иметь это с чем-то еще.
Я считаю, что Spring MVC и Webflow лучше всего подходят, если у вас есть инфраструктура вокруг проверок и логики форм. Например, в нашей системе этот процесс часто выполнялся:
- Пользователь размещает заказ;
- Сервер проверяет параметры и либо отклоняет заказ (возврат к (1)), либо принимает его;
- Подтвержденный заказ возвращается отображаемому пользователю, который подтверждает, что он хочет разместить заказ или отменить его;
- Если они отменят его, отобразите страницу с сообщением об отмене;
- Если они одобрят это, проверьте заказ еще раз;
- Если проверка не пройдена, вернуться к (1);
- В противном случае разместите заказ и отобразите результат для пользователя.
Возможно, это звучит запутанно, но очень много. Spring Spring MVC действительно подходит для такого рода сценариев, вы можете создать собственный контроллер, и тогда фактическая реализация просто становится проблемой подключения правильных представлений и поддержки bean-компонентов.
Не стоит недооценивать стоимость разработки и тестирования необходимой инфраструктуры.
Еще одна вещь, которую следует учитывать, это командный опыт: если никто другой не имеет опыта Spring MVC, то это вызовет некоторые проблемы.
Так что будьте очень осторожны, чтобы не измениться только потому, что это сделает вас лично более комфортным.