В чем разница между Struts 1.x и Struts 2.x - PullRequest
14 голосов
/ 27 апреля 2009

Хотелось бы узнать разницу между Struts 1.x и Struts 2.x

Ответы [ 4 ]

14 голосов
/ 12 июля 2010

Основное различие заключается в том, что в Struts1.x запрос напрямую отправляется сервлету, тогда как в Struts2.x запрос и ответ проходят через стек перехватчика или фильтра. Обычную логику можно поместить в классы фильтров, и разработчик может сосредоточиться на бизнес-логике. Помимо этого есть также различия в структуре каталогов.

Лучше знать различия между темами Struts1.x и Struts2.x . Вот цитата из http://www.geekinterview.com/question_details/64360:


1. Классы действий

В Struts 1.x классы действий должны расширять класс Action (или DispatchAction), а метод execute должен иметь номер параметра и возвращаемый тип ActionForward, но в Struts 2.x класс действия также может быть простым pojo с методом execute, возвращающим только строку без какого-либо входного параметра.


2. Servlet Dependancy

Контейнер не обрабатывает Struts2.x , в отличие от Struts1.x , Действия как пара запрос / ответ и действие struts2.x все еще могут получить доступ к исходному запросу и ответу.


3. Получение ввода

  • В Struts1.x компоненты формы используются для определения свойств, методов получения и установки, в struts2.x методы получения / установки определяются в самих классах действий.
  • Struts1.x класс bean-компонентов должен расширять ActionForm или ValidatorForm, но Struts2.x bean-компоненты также могут быть POJO.

4. Тестируемость

  • В Struts1.x метод execute () предоставляет API сервлета для тестирования.
  • Struts2.x Внедрение зависимости используется для упрощения процесса тестирования.

5. Языки выражения

  • Struts1.x JSTL в качестве языка выражений, где Struts2.x использует OGNL (Object Graphic Notation Language) в качестве языка выражений, который очень сильнее, чем JSTL.
  • Struts2.x также может использовать JSTL.

6. Тип преобразования

  • В Struts1.x свойства почти в строковой форме, Конверторы для каждого класса, которые не настраиваются.
  • Struts 2.x использует OGNL для преобразования типов

7. Проверка

Проверка на стороне сервера выполняется в классах действий в Struts2.x, гораздо более простым способом.

14 голосов
/ 27 апреля 2009

Это совершенно другой веб-фреймворк ... Struts2 - это в основном старая веб-работа.

Некоторые отличия:

  • Struts2 работает с POJO, больше никаких ActionForms. Все атрибуты запросов заполнены в «стандартных» классах Java.
  • Действия Struts2 не связаны с Servlet API, они не получают HttpServletRequest и HttpServletResponse в качестве параметров. Кроме того, они с состоянием (действия Struts 1 были без состояния).
  • Struts2 имеет множество улучшений, таких как API-интерфейс Interceptor, а также множество интеграций.
  • Конфигурация совершенно другая.

Я рекомендую вам «удалить» Struts1 в пользу современных веб-фреймворков.

1 голос
/ 31 августа 2012

Вы можете найти сравнение Struts 1 и Struts 2 на их веб-сайте

http://struts.apache.org/2.1.6/docs/comparing-struts-1-and-2.html

1 голос
/ 22 августа 2012

Перейдите по этой ссылке, это поможет вам много:

http://www.java -samples.com / showtutorial.php? Tutorialid = 20

...