Основной вопрос. Если мое приложение В НАСТОЯЩЕЕ ВРЕМЯ использует Struts 1.x — и я рассматриваю возможность перехода на ЛИБО Spring-MVC или Struts2 для MVC-фреймворка — есть ли что-нибудь в любом из них, что облегчило бы миграцию со Struts1 .2?
Чтобы уточнить, я НЕ спрашиваю, что лучше SpringMVC или Struts2 в целом (есть ряд существующих вопросов на SO, которые решают эту проблему), а просто на какой из Struts1.2 легче перейти.
То, что меня больше всего интересует с точки зрения миграции: возможность продолжения (в начале) использования taglib struts1.x на страницах JSP при переходе на Struts2 (или SpringMVC) API на серверной части. (Другими словами, может ли какая-либо из этих платформ поддерживать taglib Struts1.x в качестве плагина)? [Примечание: это не является долгосрочным решением, но уменьшит интеграционные трудности, поскольку JSP не нужно будет немедленно переписывать. Я предполагаю, что этот вопрос имеет смысл. Если нет, объясните, почему]
С учетом сказанного меня, конечно же, интересуют любые другие преимущества миграции.
Немного фона:
Я работаю над приложением, слой MVC которого написан через Struts 1.2. Мы также используем Spring IOC, хотя приложение в настоящее время не имеет сильной интеграции между слоем Struts и средствами Spring DI. (Примечание: это то, что мы планируем исправить при рефакторинге, но насколько я понимаю, при небольшом планировании это можно сделать правильно/эффективно даже при использовании комбинации Spring IOC+Struts2.)
В рамках улучшения/рефакторинга кодовой базы мы хотели бы перейти на более современную структуру MVC (чтобы устранить необходимость в классах Action/Form и по возможности использовать конфигурацию на основе аннотаций и т. д.), но сохранить общую классику - Стиль MVC (т. е. в настоящее время не заинтересован в переходе на JSF, Tapestry, GWT, Flex, Play и т. д. Я понимаю, что это очень разные вещи — объединим их вместе, чтобы дать общее представление..) Кроме того, желательно использовать что-то с разумной тягой/инерцией, поэтому по этой причине исключаем Stripes. Это, кажется, оставляет только Spring-MVC и Struts2 в качестве претендентов (хотя, если есть что-то еще с похожим стилем и с сильной отраслевой тягой - мы, безусловно, рассмотрели бы это)
Понятно, что переход на любой из них потребует значительного объема работы, но план состоит в том, чтобы сделать это на модульном уровне. По этой причине, если бы любой из этих поддерживаемых taglib Struts 1.2 - это значительно упростило бы переключение/тестирование (поскольку мы могли бы затем закодировать реализацию «Control» конкретного модуля в новом API - и иметь 2-й сервер для запуска старого Struts1 .2 реализация с использованием тех же jsps. Тогда тестирование QA будет в некотором роде «яблоками к яблокам». Имеет ли это смысл, или этот подход (если даже осуществимый) приведет к большему количеству головной боли, чем он разрешит?
Кроме того, как указано выше, хотя мой основной вопрос касается запуска taglib struts1.2 либо с Spring-MVC, либо со Struts2, меня также интересуют любые другие преимущества МИГРАЦИИ для Struts2-vs-Spring-MVC.