Overview

본 문서에서는 Anyframe에서 지원하는 Web Framework 중의 하나인 Struts의 기본 기능 및 사용법에 대해서 설명한다.

Apache Struts Framework는 Java web application을 개발하기 위한 open-source framework이다. Struts는 software application의 separate concerns중 하나인 Model-View-Controller(MVC) architecture를 기반으로 web application을 개발할 수 있도록 도와주고 있다. Struts에서는 Controller를 ActionServlet형태로 제공하고, JSP Taglib를 사용하여 View 레이어를 구현하도록 가이드하고 있다.

또한 Spring Framework의 Web Struts에서는(spring-webmvc-struts.jar), Spring Framework을 기반으로 비즈니스 레이어를 구성할 경우 Struts의 WebApplicationContext에 Spring Bean으로 등록된 비즈니스 레이어의 인터페이스에 접근할 수 있는 환경을 제공한다.

Anyframe Web 3.2.0은 Struts 1.3.10을 기반으로 구성되어 있고 본 문서도 이것에 기초하여 설명하고 있다. Struts의 다른 버전에 관해서는 Apache Struts 를 참고한다.

Struts의 특징

  • MVC architecture를 따르고 있기 때문에 역할 분리가 명백하다.

  • Model과 View를 연결하는 Controller인, ActionServlet은 입력된 HTTP Request에 따라 Action클래스를 실행하고, Action클래스는 Model에 해당하는 비즈니스 레이어나 Database관련 로직을 수행한다. 그리고 Model과 View사이의 data 전달을 위한 ActionForm 클래스를 활용할 수 있다.

  • JSP로 구현하는 View 개발을 편리하게 도와주는 Taglib를 제공한다.

  • Struts에서 기본으로 제공하는 Taglib에는 Bean, HTML, Logic, Nested가 있다.

  • Configuration 설정으로 Exception Handling이 가능하다.

  • struts-config.xml파일의 exception handling을 이용하여 Exception종류에 따른 Exception page를 간편하게 설정할 수 있다.

  • Configuration 설정으로 권한처리가 가능하다.

  • 특정 URL에 권한을 부여하여 허가된 사용자만이 해당 URL에 접근이 가능하도록 설정할 수 있다.

  • Controller에서 Validation Check가 가능하다.

  • 사용자의 입력값을 View가 아닌 Controller에서 Validation Check를 할 수 있다.

  • MessageResource를 이용한 국제화(I18N)기능을 지원한다.

  • 사용자 Locale정보에 따라 다양한 언어로 web page 출력이 가능하다.