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 출력이 가능하다.