역사
Struts1은 2000년에 등장하여 MVC 프레임워크의 표준이 되다시피 했습니다.
그러나 시간이 흐르면서 웹 애플리케이션의 요구사항이 다양해지면서 다양한 MVC 프레임워크 Spring MVC,
WebWork, 태피스트리 등이 등장함에 따라 Struts1을 변경할 필요성을 느꼇습니다. Struts1 개발자들은 OpenSymphony의 WebWork 개발자들과 진보된 MVC 프레임워크를 위해 아이디어를 모았습니다.
마침내 두 프로젝트가 합병되어 Struts2가 발표되었습니다. Struts2는 WebWork2와 합병되면서 내부
아키텍쳐가 완전히 달라졌습니다. 서블릿 방식에서 필터와 인터셉터 기반의 WebWork2의 아키텍쳐를 그대로 적용함으로써 유연한 프레임워크로 발전하게 되었습니다. 아래 그림은 Struts2의 로고 입니다.
사용자 삽입 이미지













특징
아키텍쳐
서블릿 방식에서 필터 방식으로 바뀌면서 Filter Dispatcher가 요청에 따라 적절한 액션을 수행합니다. 액션을 수행하기 전 후로 다양한 Interceptor들이 수행되며 최종 결과값이 다양한 형태 HTML,
PDF, 이미지, 등으로 응답되어 집니다.

POJO 액션
더이상 Servlet API에 의존적이지 않습니다. Action 클래스를 상속받을 필요도 없이 POJO 클래스가
액션 클래스가 될 수 있습니다. 따라서 테스트가 한결 쉬워졌습니다.

Interceptor
액션이 수행되기 전 후로 다양한 Interceptor가 지원 됩니다. 대표적으로 파라미터를 자동으로 세팅해주거나 퍼포먼스를 측정하거나 로깅을 해주는 Interceptor가 있습니다. Intercpetor는 몇줄의 설정으로 사용할 수 있습니다.

태그

Struts2의 태그들은 테마와 템플릿을 사용하여 높은 수준의 사용자 인터페이스를 적은 라인으로
생성할 수 있습니다. 또한 AJAX지원 태그를 이용해 별도의 작업없이 AJAX를 구현할 수 있습니다.

Plug-In
다양한 Plug-In 지원으로 뷰관련 프레임워크인 JFreeChart, JasperReport, Sitemesh, 등등.. 과 의존성 주입을 위한 Spring같은 프레임워크를 손쉽게 통합할 수 있습니다.

설정
제로 컨피규레이션 지향으로 기본으로 제공되는 설정값들로 대부분의 설정을 생략할 수 있습니다.
또한 와일드카드 매핑, 애노테이션 지원으로 설정을 대폭 줄일 수 있습니다.

신고

'Struts2' 카테고리의 다른 글

method prefix와 ! convention  (0) 2008.10.26
Struts2 아키텍쳐  (2) 2008.01.31
Struts2 설정 - 상수 설정  (0) 2008.01.27
Strtus2 설정 - struts.xml  (3) 2008.01.20
Struts2의 역사와 특징  (1) 2008.01.20
Struts2 퀵스타트  (1) 2008.01.20
Posted by 째코