첫번째 스트럿츠 


안녕하세요.
고코더 입니다.


지난 시간에 이클립스에 jar를 복사하면서 스트럿츠 프로젝트르 변신 시켰습니다.
이번엔 스트럿츠가 제공하는 프레임워크 기능으로 Hello를 표현 해보겠습니다. 
최대한 쉽고 알기 쉽게 설명해보려고 합니다.


 1. 만들어진 프로젝트에서 src 폴더 위에서 class를 생성하겠습니다. 파일 이름은 HelloAction 이고 패키지명은 단순하게 hello으로 해보겠습니다.
스트럿츠에서는 보통 컨트롤러와 같은 역할을 하는 action을 주는 클래스가 있는 파일은 Action을 넣어줍니다. 

 2. 패키지명과 파일 이름을 입력 하고 finish를 누릅니다. 


 3. 만들어진 파일에 내용은 아래처럼 채웁니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package hello;
import com.opensymphony.xwork2.Action;
public class HelloAction implements Action{
       
       private String msg;
       
       public String getMsg(){
              return msg;
       }
       
       @Override
       public String execute() throws Exception {
              // TODO Auto-generated method stub
              
              this.msg="Hello Struct2 GoCoder.Net ";
              return SUCCESS;
       }
}  
cs

2번 라인 : 스트럿츠 action 기능을 사용하기 위해 선언합니다. 필수적인 기능입니다.
3번 라인 : Action을 구현하기 위해 상속합니다.
7번 라인 : get을 붙인 함수는 자동적으로 view에 변수를 제공합니다. 그러므로 msg는 jsp에서 el 태그로 사용할 수 있습니다.
12번 라인 : Action 인터페이스의 execute( ) 메소드를 오버라이드 합니다. 
16번 라인 : SUCCESS는  Action 인터페이스의 리턴 값이 있음을 지정한다.



struts.xml 생성

 4. src 폴더 아래 struts.xml을 생성 합니다. 이 파일은 스트럿츠에서 환경파일을 설정하는 가장 중요한 파일입니다. 
자세한 내용은 다시 설명하게 될 것이니 한번 아래 코드를 우선 따라 하면서 배워보시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration  2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
     <package name="HelloStruts2" extends="struts-default">
           <action name="hello" class="hello.HelloAction">
                <result name="success"  >/WEB-INF/hello.jsp</result>
           </action>
     </package>
</struts>
cs

7번 라인 : 해당 패키지 name을 지정 합니다. 
8번 라인 : name은 브라우저가 요청한 주소를 맵핑 합니다. URI가 되므로 중요한 부분입니다. class는 위에서 만든 java 클래스 안에 수행할 객체를 지정합니다. 
9번 라인 : 맵핑 될 view 소스 주소를 기록 합니다. 


web.xml 수정


 5. 스트럿츠를 사용하기 위해서는 해당 파일에 꼭 필요한 옵션을 줘야 합니다.
아래 코드를 붙혀넣어주세요.

1
2
3
4
5
6
7
8
9
  <filter>
     <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  
  <filter-mapping>
     <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
  </filter-mapping>
cs
 

hello.jsp 생성

 6. 이젠 뷰를 생성해야 합니다. struts.xml에서 지정한 위치에 파일을 생성해야 합니다.

1
2
3
4
5
6
7
8
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>
     ${msg}
</body>
</html>
cs

6번 라인 : HelloAction에서 작성한대로 msg 변수를 el태그로 호출 합니다.


결과 화면 


 7. 해당 URL로 접근하면 아래처럼 헬로우가 나타납니다. 


 8. 헬로우 까지의 소스 상황입니다. 3개의 파일을 만들었고 1개의 파일을 수정했습니다. 



마무리


이해만 하면 쉽습니다.

댓글을 달아 주세요