ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Struts2 를 파헤쳐 보자 ━─★ 팍팍!!
    Programming/Struts2 2010. 5. 14. 13:27

    스트럿츠2 특징
    아파치 스트럿츠는 2000년에 등장하여 자바 기반의 웹 어플리케이션들을 개발하는데 많은 도움을 주며 성장하였다.
    더 쉽고 간결하게 웹 어플리케이션을 만들며,더욱 풍부한 사용자 인터페이스를 구축하기 위한 웹 프레임워크의 등장이 요구되었다.
    스트럿츠2는 웹워크의 단순함, 세련미, 개발 툴 친화성의 장점과 struts1을 결합하여 탄생되었다.


     
    전혀 새로운 프레임워크
    스트럿츠1과는 전혀 다른 웹워크의 아키텍처를 채용
    서블릿 의존성에서 벗어난 POJO 기반의 액션
    테스트 용이성 증가
    /출력 처리의 다양화
    비즈니스와 도메인 객체를 포함한 풍부한 객체 타입을 입/출력 객체로서 사용할 수 있다.
    다양한 표현언어 EL 지원
    스트럿츠2JSTL을 지원하며, 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 기본값으로 사용한다.





      struts.xml
    웹 어플리케이션의 루트 경로 밑의 ‘/WEB-INF/classes’에 위치한다.



    JSP에서 스트럿츠2 태그 라이브러리를 사용하려면 JSP의 상단에 스트럿츠2 태그 라이브러리 설정 정보를 추가해야 한다. 

    JSP에서 태그 사용 형식


     
    스트럿츠2에서 요청 파라미터를 얻는 방법
    밸류 스택 ValueStackOGNL 이용


     
    OGNL Object Graph Navigation Language
    JSP에서 스트럿츠2 태그 라이브러리를 사용하려면 JSP의 상단에 스트럿츠2 태그 태그라이브러리 설정 정보를 추가해야 한다.
    정적 메서드 또는 인스턴스 메서드를 실행하고, 컬렉션 타입의 테이터 또한 사용할 수 있도록 진보된 표현식을 제공한다.
    XWork 내에서 확장된 풍부한 타입 변환 모델을 제공한다.
    빈의 프로퍼티는 프로퍼티 이름으로 접근할 수 있다.

     
    밸류 스택 ValueStack
    밸류 스택은 XWork와 스트럿츠2의 동적 컨텍스트 기반의 핵심 부분으로 객체의 스택이다.
    표현식에 사용된 그 이름의 프로퍼티를 갖는 첫 번째 객체를 검색함으로써 동적으로 프로퍼티 값을 찾는다.
    스트럿츠2는 액션이 실행되는 동안 액션을 스택상에 저장하여 밸류 스택을 구축한다.
    스트럿츠2는 요청으로부터 처리해야 할 파라미터 값과 액션의 프로퍼티를 밸류 스택을 통해 접근한다.
    필터 디스패처 FilterDispatcher
    사용자의 요청을 최초로 처리하는 것은 필터 디스패처”라고 불리는 스트럿츠2의 컨트롤러이다.
    필터디스패처는 서블릿 필터다.
    필터 디스패처는 액션을 실행하기 위한 환경을 구축한다.
    사용자에게 보낼 응답을 처리한다.

     
    필터 디스패처 FilterDispatcher
    스트럿츠2 웹 어플리케이션을 개발하기 위해 웹 어플리케이션 배치 디스크립터인 web.xml 에 필터 디스패처를 등록해야 한다.


    struts.xml 기본 설정

    인클루드 Include
    패키지 Package






    와일드 카드 매핑 Wild Card Mapping













Designed by Tistory.