Миграция из Struts 1.2 -> Struts2 по сравнению с Spring-MVC (в первую очередь по сравнению с поддержкой taglib в Struts1.2) - PullRequest
11 голосов
/ 09 августа 2010

Основной вопрос: если мое приложение в настоящее время использует Struts 1.x - и я рассматриваю вопрос о переходе на EITHER Spring-MVC или Struts2 для MVC-инфраструктуры - есть ли что-то такое, что облегчит мигрировать со Struts1.2?

Чтобы уточнить, я НЕ спрашиваю, является ли SpringMVC или Struts2 лучше в целом (существует ряд существующих Q на SO, которые решают эту проблему) - какой из них легче перенести из Struts1.2.

Точка, которая меня больше всего интересует с точки зрения миграции: возможность продолжения (в начале) для использования библиотеки тегов struts1.x на страницах JSP при переходе на Struts2 (или API SpringMVC) на сервере. (Другими словами, может ли какая-либо из этих структур поддерживать taglib Struts1.x в качестве плагина)? [Примечание: это не предназначено как долгосрочное решение - но уменьшило бы трудность интеграции, так как JSP не должен был бы быть немедленно переписан. Я предполагаю, что этот вопрос имеет смысл - если нет, объясните, пожалуйста, почему]

С учетом сказанного меня, конечно, интересуют любые другие преимущества миграции.


Некоторый фон:

Я работаю над приложением, уровень MVC которого написан с помощью Struts 1.2. Мы также используем Spring IOC - хотя в настоящее время приложение не имеет сильной интеграции между слоем Struts и средствами Spring Spring. (Примечание. Это то, что мы планируем исправить при рефакторинге, но, насколько я понимаю, при небольшом планировании это можно сделать правильно / эффективно даже при использовании комбинации Spring IOC + Struts2.)

В рамках улучшения / рефакторинга кодовой базы - мы хотели бы перейти на более современную инфраструктуру MVC (чтобы исключить необходимость в классах Action / Form и использовать конфигурацию, основанную на аннотациях, когда это возможно, и т. Д.), Но сохранить общий классический стиль MVC (то есть в настоящее время не заинтересован в переходе на JSF, Tapestry, GWT, Flex, Play и т. д. Я понимаю, что это очень разные вещи - смешивать их вместе, чтобы дать общее представление ..) Кроме того, желание состоит в том, чтобы идти с чем-то с разумной тягой / импульсом - так правит Полосатый по этой причине. Похоже, что это только оставляет Spring-MVC & Struts2 в качестве претендентов (хотя, если есть что-то еще с аналогичным стилем и сильной отраслевой тягой - мы бы, безусловно, рассмотрели это)

Принято считать, что переключение на любой из них потребует значительного объема работы - но план будет делать это на модульном уровне. По этой причине, если бы любой из этих тегов поддерживал taglib в Struts 1.2 - это значительно упростило бы переключение / тестирование (как мы могли бы затем кодировать реализацию «Control» конкретного модуля в новом API), а второй сервер запустил бы старый Struts1. .2 Реализация с использованием того же jsps. QA-тестирование в таком случае было бы способом «яблоки к яблокам». Имеет ли это смысл, или этот подход (если даже осуществимый) приведет к большему количеству головной боли, чем разрешит?

Также, как указано выше, хотя мой основной вопрос касается запуска taglib Struts1.2 с использованием Spring-MVC или Struts2, меня также интересуют любые другие преимущества MIGRATION для Struts2-vs-Spring-MVC.

Ответы [ 4 ]

4 голосов
/ 22 октября 2012

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

3 голосов
/ 13 октября 2011

Я не видел поддержки 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и это не простая задача.

2 голосов
/ 01 февраля 2011

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

См. Также: «Миграция из Struts2 в Spring MVC» вопрос при стеке потока.

1 голос
/ 13 октября 2011

Переход к любому из них - это по существу то же количество и тип работы.

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

...