• 다양한 표현언어 EL 지원
• 스트럿츠2도 JSTL을 지원하며, OGNL(Object Graph Navigation Language) 라고 불리우는 강력하고 유연한 표현 언어를 지원한다.
•뷰와 값의 연결
• 밸류스택이라는 기술을 사용한다.
• 액션 실행 제어
• 인터셉터 스택
• 전, 후 처리 가능
• Zero Configuration 지향 및 신속한 리로딩
• 환경 설정이 쉬움
• 변경된 환경 적용시 리로딩이 가능하다.
• 강력한 유효성 검사
• XWork의 유효성 검사 프레임워크에 기반
•강력한 태그 및 Ajax 지원
• 재사용성이 높은 UI태그를 제공한다.
• ajax 테마를 지원하는 dojo 프레임워크를 포함하고 있다.
• 다양한 플러그인 기능을 지원한다.
• 다양한 리절트 타입을 지원한다.
• 의존성 주입을 지원한다.
스트럿츠2 기본 개념
•스트럿츠가 제공하는 기본 개념
• 액션 Action
• 리절트 Result
• 환경 설정 Configuration
•액션 Action
• 액션이란 스트럿츠2에서 비즈니스 로직을 실행하기 위한 통로 역활을 하는 개념으로서 가장 중심적인 위치에 있다.
• 리절트 Result
• 스트럿츠2가 비즈니스 로직을 수행한 후, 최종 결과를 출력하기 위해 제공하는 것이 리절트이다.
•태그
• 결과 페이지에서는 태그 라이브러리나 여러 문법을 통해서 액션 클래스의 프로퍼티를 접근할 수 있기 때문에 손쉽게 동적인 페이지를 구성할 수 있다.
•환경설정 struts.xml
• 사용자의 요청에 대해 어떤 액션을 수행한 후, 어떤 리절트를 출력해야 하는지 스트럿츠가 알 수 있도록 해야한다.
• 액션과 리절트의 관계를 정의한다.
• 스트럿츠2 자체의 기능 설정을 위해 환경설정 모듈을 제공한다.
스트럿츠2 기본 구조
• 요청 URL과 요청 처리 및 결과 출력의 흐름
•액션과 비즈니스 로직의 관계
•액션 Action
• 스트럿츠2에서 액션은 하나의 자바 클래스이다.
• 액션 클래스는 스트럿츠2가 액션을 실행하기 위한 엔트리 포인트로서 기본 액션 메서드인 execute() 메서드를 가진다.
•기본 액션 메서드인 execute() 메서드는 String 타입을 반환한다.
• 액션 메서드가 반환하는 문자열은 액션 실행이 끝난 후 어떤 리절트를 실행할 지 결정하기 위해 사용된다.
• 액션 메서드가 반환하는 이 문자열 값을 “리절트 코드”라고 부른다.
• 액션을 호출하려면 사용자는 “액션이름.action” 형식을 사용한다.
• 액션이름은 스트럿츠2 환경설정 파일인 “struts.xml” 파일에 정의한다.
•<action /> 요소는 액션을 정의할 때 사용한다.
• <action /> 요소는 name, class, method 속성를 갖는다.
• <result /> 요소는 액션 수행이 완료된 후 실행될 리절트를 정의할 때 사용한다.
• <result /> 요소는 <action /> 요소 사이에 정의하고, name, type 속성를 갖는다.
•스트럿츠2는 다양한 타입의 리절트를 제공한다.
• <result /> 요소에 name 속성을 생략하면 “success”를 기본값으로 사용한다.