ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • struts2 :: 기본 설정 및 Hello 띄우기!
    IT/Java & JSP & FW 2012. 4. 25. 03:32

    Struts2에서는 HTML 폼 데이터를 특정 자바 클래스로 Submit 하는 데 이런 자바클래스를 Action이라고 하며 Action이 실행된 후 그 결과를 클라이언트 브라우저로 보내주어야 하는데 이때 사용되는 자원을 result라고 한다. 이러한 result는 일반적으로 JSP이지만 PDF나 엑셀파일들이 될 수도 있다.


    1. struts2 셋팅하기

    Struts2 라는 이름의 다이나믹 웹 프로젝트를 하나 생성합니다.


    http://struts.apache.org 로 가서 최신 버젼의 struts를 다운 받습니다.
    압축을 풀고 lib 안에서 아래와 같은 jar 파일을 프로젝트 lib 안에 넣습니다.



    2. Action 클래스 생성

    Action은 Bean으로 getter를 통해 JSP 같은 곳에서 데이터를 읽을 수 있으며 setter를 통해 form 데이터 값을 Bean에 저장할 수 있다. 본 예제에서는 사용자가 hello.jsp의 화면에서 본인의 이름을 입력하면 setName(String name) 메소드를 통해 form 데이터를 전송 받고 getMsg() 메소드를 통해 JSP(result.jsp)에서 값을 읽을 수 있는 것이다.


    사용자가 웹 화면에서 hello.action 이라는 요청을 보내면 struts.xml에 설정된 것처럼 해당 Action 클래스의 execute 메소드가 실행되며 SUCCESS를 리턴하게 된다. (struts.xml에 설정된 내용처럼 SUCCESS가 리턴 되었을 때는 result.jsp로 응답을 만들게 되는 것이다.)


    hello 패키지 안에 HelloWorldAction 클래스 생성.

    package hello;
    
    import com.opensymphony.xwork2.Action;
    
    public class HelloWorldAction implements Action{
    	
    	private String name;
    	private String msg;
    	
    	public String getMsg(){
    		return msg;
    	}
    	
    	public void setName(String name){
    		this.name=name;
    	}
    	
    	//Action 인터페이스에서 필히 상속을 받는 메서드.
    	@Override
    	public String execute() throws Exception {
    		// TODO Auto-generated method stub
    		
    		msg="Hello," + name;
    		return SUCCESS;
    	}
    }
    

    이 클래스에서 set이 라는 키워드가 붙은 setXXX 메소드를 사용하게 되면 request.setparameter 와 같은 기능을 하게 되고,
    getXXX 메소드를 사용하게 되면 메모리상에 바로 적재가 되어 el 식이나 get~~ 으로 불러올 수 있게 된다.


    3. WEB-INF 밑에 jsp 파일 작성

    hello.jsp

    <form action="/Struts2/hello.action">

    이름 : <input type="text" name="name">

    <input type="submit">

    result.jsp

    <h2>${msg}</h2>



    4. src 아래 struts.xml 작성

    <?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="hello" extends="struts-default">
    		<action name="hello" class="hello.HelloWorldAction">
    			<result>/result.jsp</result>
    		</action>
    	</package>
    </struts>
    



    5. web.xml 수정

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>Struts2</display-name>
      <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>
      
    </web-app>
    



    6. 결과 확인

    http://localhost:8080/Struts2/hello.jsp - 접속 주소 or hello.jsp 를 실행시킨다.

    실행 -

    결과 - 



    7. 총 디렉토리 구조


Designed by Tistory.