이클립스를 사용하는 분이라면 한번쯤 들어봤을 마이이클립스, 마이이크립스8 버전에서부터 스트럿츠2를 지원하기 시작했습니다. 스트럿츠2 프로그래밍의 Chapter2 튜토리얼을 마이이클립스8로 따라 해봤습니다. 아래 내용을 따라해보려면 JDK와 마이이클립스8이 설치되어있어야겠죠.

1. 마이이클립스


2. 프로젝트 생성
상단 메뉴의 File > New > Web Project를 클릭합니다.

Project Name을 입력합니다. 저는 test.struts2라 입력을 했습니다. Source folder, Web root folder, Context root URL을 입력합니다. Context root URL은 Project Name을 입력하고나면 /test.struts2라고 입력되어지지만 귀찮은 관계로 "/"로 수정을 했습니다. J2EE 버전은 Java EE 5.0으로 선택하고 하단의 Finish 버튼을 클릭합니다.


3. 스트럿츠2 환경설정
보통 책을 보면 스트럿츠 다운로드 과정이 들어가있습니다. 마이이클립스를 사용하게 되면 이 과정이 생략됩니다. Package Explorer의 text.struts2 프로젝트에서 마우스 우클릭을 하면 팝업 메뉴가 뜹니다. 아래쪽에 보면 MyEclipse를 클릭하면 서브 메뉴가 나오는데 [Add Struts Capab......] 메뉴를 클릭합니다.

스트럿츠 버전을 2.1로 선택합니다. Struts filter name이나 URL pattern은 취향에 맞게 수정하셔도 됩니다. 그냥 디폴트 설정으로 놔두고 Finish 버튼을 클릭합니다.

Package Explorer의 test.struts2 프로젝트에 struts.xml과 Struts2 Core Lib가 생겼습니다. 이것으로 스트럿츠2를 따라하기 위한 설정은 끝났습니다.


4. 액션 만들기
액션을 만들기 위해 test.struts2 프로젝트의 javaSrc에서 우클릭을 합니다. New > Class 메뉴를 클릭합니다. 

Package에 tutorial, Name에 HelloWorld라고 입력합니다. Interfaces에 Action을 추가합니다. 방법은 우측의 Add 버튼을 클릭하면 아래의 팝업창이 뜹니다.

action이라고 입력하면 Matching items 관련 프로그램이 서제스트됩니다. com.opensymphony.xwork2.Action을 선택하고 더블클릭 또는 하단의 Add 버튼을 클릭합니다. 

생성된 자바 프로그램을 위와 같이 코딩합니다.


5. JSP 만들기
test.struts의 www 디렉토리에서 우클릭을 합니다. New > JSP(Advanced Tem....) 메뉴를 클릭합니다.

File Name에 helloWorld.jsp라 입력하고 Finish 버튼을 클릭합니다.

<body> 태그 안에 <h2>${message}</h2> 라고 코딩합니다. JSP도 간단하군요.


6. 매핑
마이이클립스에서는 Design 모드와 Source 모드를 지원합니다. 프로젝트 test.struts2의 javaSrc 디렉토리 안에 있는 struts.xml을 열어 아래와 같이 설정합니다. 

Design 모드에서는 마우스 우클릭을 이용해서 비교적 간단하게 설정이 가능합니다. 팝업메뉴에 Child와 Attribute만 구분해주면 별 어려움이 없겠네요.

Design 모드에서 작성을 하고 Source 모드에서 확인 한 결과입니다. 영타가 빠르고 설정파일에 대한 이해가 높다면 바로 코딩하는게 좋겠죠. 저는 영타가 느려서 ㅡㅡ;;


7. web.xml 설정
위 과정을 그대로 따라했다면 web.xml 파일은 위와 같이 설정되어져 있습니다. 튜토리얼에서는 위 내용을 그래도 사용해도 무관합니다.


9. 배포하기

배포를 위해서 상단의 빨간 박스를 클릭합니다. 팝업창에서 Add 버튼을 클릭합니다. 서버 설정이 되어있지 않다면 Edit server connection...을 클릭하여 아래와 같이 설정합니다. Server는 Tomcat 6.x로 선택을 하고 Finish 버튼을 클릭합니다.






10. 톰캣 실행 및 JSP 확인
메뉴의 빨간박스를 클릭합니다. 위에서 설정해준 Tomcat 6.x가 보입니다. 서브메뉴의 Start를 클릭하면 톰캣이 실행됩니다. 실행 후에는 Start 메뉴가 비활성화되며 Stop Server 메뉴가 활성화됩니다.

프로젝트가 생성될때 함께 만들어진 index.jsp입니다.

helloWorld.jsp 최종 결과물 확인입니다. 튜토리얼은 쉽네요. 

위와 같이 따라했다면 액션의 확장자는 .action만 가능합니다. 보편적으로 사용하던 .do를 사용하기 위해서는 struts.properties 파일을 만들어서 javaSrc에 넣어줍니다. struts.properties는 struts2-core-2.1.6.jar 파일의 org.apache.struts2.default.properties 파일과 상속 관계에 있습니다.(이 표현이 맞는지 모르겠네요.) default.properties를 복사해서 넣어주어도 됩니다. struts.properties를 만들고 default.properties의 83라인에 있는 struts.action.extension=action,,를 넣어줍니다. struts2의 기본값이 action입니다. 콤마를 구분자로 사용하고자 하는 확장자 값을 추가 가능합니다. action, do....

와우~ 두시간이 걸렸네요. 너무 너무 심심한 백수라 ㅡㅡ;; 가능한 짓을 했네요. 다음번 정리는 또 언제 가능할지 모르겠네요!!
  1. 유마 2010.01.29 14:15

    안녕하세요. 현재 스트럿츠2 독학 중인 초보입니다. ^_^a 모르는게 있어서 질문 드릴려고 왔습니다. ㅜ.ㅡ
    교재 한 권을 선택해서 공부중인데 2.0.1.4 버전입니다. 저는 2.1.8.1 로 공부중인데요. 뭐, 그럭저럭 호환이 되서 공부가 진행되고 있습니다만,
    ActionSupport 클래스의 validate() 를 사용하려는데, struts.xml에 <interceptor-ref name="workflow" /> 설정해서 <result name="input">오류면 뜨는 페이지</result> <result name="success">성공이면 뜨는페이지</result> 이렇게 하는데, 아무리 해도 오류를 일부로 내도... 성공 페이지만 뜹니다. 그래서 2.0.1.4 로 해보면 잘 됩니다.

    분명, 2.1.8.1 에서는 뭔가 바뀐거 같은데 아무리 찾아보고 뒤져봐도 없네요... 어떻게 해야 되나요?