Миграция со Struts 1.2 -> Struts2 vs Spring-MVC (в основном в отношении поддержки taglib Struts1.2)

Основной вопрос. Если мое приложение В НАСТОЯЩЕЕ ВРЕМЯ использует 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.


person bogachkov    schedule 09.08.2010    source источник
comment
Мы готовимся сделать аналогичный апгрейд. Были ли какие-то препятствия/сложные переходы, с которыми вы сталкивались?   -  person Scott    schedule 09.02.2011


Ответы (4)


Я не видел поддержки taglib Struts 1 ни в одной из этих платформ.

Некоторые незначительные преимущества Struts2: есть несколько официальных ссылок на перенос приложений со Struts1 на Struts2 — http://struts.apache.org/2.2.3.1/docs/migration-strategies.html — http://struts.apache.org/2.2.3.1/docs/migration-tools.html

В Struts2 есть даже подключаемый модуль Struts1, который позволяет выполнять действия в Struts2 — http://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

К сожалению, в этих же ссылках говорится, что вам нужно конвертировать ваши старые JSP, а это непростая задача.

person madth3    schedule 13.10.2011

Если перенести Strut1.2 на Spring MVC, если мы включим struts.jar в WEB-INF/lib, мы по-прежнему сможем использовать taglib strut1.2 в Spring MVC, это означает, что вы по-прежнему можете использовать bean:define, bean:write.. Логика: присутствует, логика: равно... (библиотека тегов Struts1.2) в JSP, единственное изменение состоит в том, что библиотека тегов формы struts 1.2 (html:текст,html:ошибка html:форма...) должна быть изменена на библиотеку тегов весенней формы ( form:path, form:form,form:path,form:error...), чтобы мы могли связать поля формы с данными класса команды, referenceData или инициализированными данными команды с помощью formBackObject для использования функции spring MVC JSP

person John    schedule 22.10.2012

Попробуйте прочитать и сравнить следующие статьи:

См. также: вопрос "Миграция со Struts2 на Spring MVC" в stackoverflow.

person linuxbuild    schedule 01.02.2011

Переход к любому из них, по сути, является одним и тем же объемом и типом работы.

Несмотря на то, что имеется подключаемый модуль Struts 1 в S2, который позволяет использовать существующие классы действий S1, как уже отмечалось, вам все равно нужно переписать файлы JSP, и ваше приложение по-прежнему будет страдать от тесной связи S1 с инфраструктурой сервлетов. .

person Dave Newton    schedule 13.10.2011
comment
проверьте этот stackoverflow.com/ вопросы/13314240/ - person Tell Me How; 06.07.2015