В чем разница между Struts 1.x и Struts 2.x
Хотелось бы узнать разницу между Struts 1.x и Struts 2.x
4 ответа
Основное отличие состоит в том, что в 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. Зависимость сервлета
Контейнер не обрабатывает Struts2.x, в отличие от Struts1.x, Actions как пара запрос / ответ, а действие struts 2.x по- прежнему может обращаться к исходному запросу и ответу.
3. Получение информации
- В Struts1.x бины форм используются для определения свойств, методов получения и установки, в Struts2.x методы получения / установки определяются в самих классах действий.
- Класс bean-компонентов формы Struts1.x должен расширять ActionForm или ValidatorForm, но bean- компоненты Struts2.x также могут быть POJO.
4. Тестируемость
- В Struts1.x метод execute() предоставляет API сервлета для тестирования.
- Struts2.x Dependancy Injection используется для упрощения процесса тестирования.
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, гораздо более простым способом.
Это совершенно другой веб-фреймворк... Struts2 - это в основном старая веб-работа.
Некоторые отличия:
- Struts2 работает с POJO, больше нет ActionForms. Все атрибуты из запросов заполняются в "стандартных" классах Java.
- Действия Struts2 не связаны с Servlet API, они не получают HttpServletRequest и HttpServletResponse в качестве параметров. Кроме того, они с состоянием (действия Struts 1 были без сохранения состояния).
- Struts2 имеет множество улучшений, таких как API-интерфейс Interceptor, а также множество интеграций.
- Конфигурация совершенно другая.
Я рекомендую вам "отойти" от Struts1 в пользу современных веб-фреймворков.
Перейдите по этой ссылке, это поможет вам много:
Пожалуйста, найдите сравнение ч / б Struts 1 и Struts 2 с их сайта.
http://struts.apache.org/2.1.6/docs/comparing-struts-1-and-2.html