struts로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts로 검색한 결과
등록일:2008-03-16 11:44:59
작성자:
제목:Struts 2 Tutorial - 08.JSP, Java, 환경설정파일 작성하기


본 튜토리얼은 제가 struts 2를 공부할 목적으로 아래의 원문에 링크된 문서를 번역하여 정리한 것입니다.
원문: http://www.roseindia.net/struts/struts2/struts-2-hello-world-files.shtml



이번 섹션에서는 스트럿츠 2 Hello World 어플리케이션을 위한 JSP, Java, 환경설정파일을 작성할 것입니다.
지금 스트럿츠 2의 struts.xml이 어플리케이션을 설정하기 위해 사용되고 있습니다.

어플리케이션의 이해
어플리케이션은 현재시간과 서버시간과 Hello World 메시지를 표시하는 간단한 어플리케이션입니다.

튜 토리얼 홈페이지의 "Run struts 2 Hello World Application" 링크를 클릭하면, request는 스트럿츠 프레임워크로 보내집니다. 그 때 스트럿츠 프레임워크는 입력을 액션클래스(이 경우에는 struts2HelloWorld.java)로 보냅니다. 액션이 소멸된 후 결과는 응답을 렌더링하기 위해 "/pages/HelloWorld.jsp"  리소스를 선택한다

예제에서 액션 클래스와 액션과 결합된 매핑(struts.xml), 그리고 페이지의 세가지 부분의 뷰를 개발해야만 한다. 이러한 세가지 콤포넌트를 생성함으로서 어플리케이션을 모델, 뷰, 컨트롤러로 분리할 수 있습니다.


이 페이지는 브라우저에서 결과를 보여주는데 사용된다.HelloWorld.jsp는 어플리케이션의 뷰의 일부이다. struts2tutorial\pages 폴더에 "HelloWorld.jsp" 를 생성하고 아래 내용을 추가하라.
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>struts 2 Hello World Application!</title>
</head>
<body>
<h2><s:property value="message" /></h2>
<p>Current date and time is: <b><s:property value="currentTime" /></b>
</body>
</html>

<%@ taglib prefix="s" uri="/struts-tags" %> 는 스트럿츠 라이브러리의 데이타 태그를 선언한다.
스 트럿츠 데이터 태그는 동적인 데이터를 표시하는데 사용된다. <s:property value="message" /> 태그와 <s:property value="currentTime" /> 태그는 struts2HelloWorld 액션 클래스에서 각기 getMessage()와 getCurrentTime()메서드를 호출하고 값은 response 객체에 합쳐진다.

액션 (모델과 상호작용)
이제 struts2HelloWorld.java를 생성하고 "struts2tutorial\WEB-INF\src\java\net\roseindia" 폴더에 저장하라. 이 액션 클래스는 화면에 표시하기 위한 메시지를 생성한다. 여기 struts2HelloWorld.java 코드가 있다.

package net.roseindia;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;

public class struts2HelloWorld extends ActionSupport {

   public static final String MESSAGE = "struts 2 Hello World Tutorial!";

   public String execute() throws Exception {
       setMessage(MESSAGE);
       return SUCCESS;
   }

   private String message;

   public void setMessage(String message){
       this.message = message;
   }

   public String getMessage() {
       return message;
   }

 public String getCurrentTime(){
     return new Date().toString();
 }
}


컨트롤러 설정파일

스트럿츠 2는 어플리케이션을 설정하기 위해서 struts.xml 파일을 사용한다.struts.xml 파일을 생성하고 "struts2tutorial\WEB-INF\src" 디렉토리에 저장한다. 파일의 내용은 아래와 같다.

<?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>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<package name="roseindia" namespace="/roseindia" extends="struts-default">

<action name="HelloWorld" class="net.roseindia.struts2HelloWorld">
<result>/pages/HelloWorld.jsp</result>
</action>

<!-- Add actions here -->
</package>


<!-- Add packages here -->

</struts>

struts.xml 파일은 어플리케이션의 클래스패스에 있어야만 한다. jar 파일에 포함시키던지 어플리케이션의 lib 폴더에 위치시킬 수 있다. 혹은 웹 어플리케이션의 classes 폴더에 위치시킬수 있다. 우리의 어플리케이션은 struts.xml 파일을 jar 파일에 넣는 ant 빌드 툴을 사용하고 있다.

* struts2tutorial\index.html을 아래와 같이 수정해준다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=roseindia/HelloWorld.action">
</head>

<body>
<p>Loading ...</p>
</body>
</html>

어플리케이션 빌드

나는 ant 빌드 툴을 이미 설치했다고 가정한다.  ant 빌드 툴을 사용한 이래로 어플리케이션 빌딩이 매우 쉬워졌다.어플리케이션을 빌드하기 위해서 명령프롬프트 창을 열고 웹 어플리케이션 폴더인 "struts2tutorial\WEB-INF\src" 로 이동한 후 "ant"라는 명령어만 실행하면 된다. ant 빌드 툴은 자바 파일을 컴파일 하고 "struts2tutorial.jar"라는 jar 파일을 웹 어플리케이션의 lib 디렉토리에 생성할 것이다. 아래는 ant 빌드툴의 출력이다.

ant 실행 후 메시지

스트럿츠 2 Hello World 웹어플리케이션 테스트
위의 섹션에서 어플리케이션을 컴파일했고 이제 마침내 어플리케이션을 테스트를 할 것이다. 어플리케이션을 테스트하기 위해서 톰캣 서버를 시작하고 웹브라우저 주소창에 http://localhost:8080/struts2tutorial 을 입력하면 아래와 같은 화면이 뜬다.
사용자 삽입 이미지

어플리케이션은 "struts 2 Hello World Tutorial!" 라는 메시지를 현재 시간과 서버 시간을 함께 출럭한다.

어플리케이션이 어떻게 작동하는가?

여기 스트럿츠 2 Hello World 어플리케이션이 작동하는 방법을 짧게 설명해놓았다.

1.웹 브라우저에서 웹 서버로 해당 URL(여기서는 http://localhost:8080/struts2tutorial/roseindia/HelloWorld.action)을 위한 요구를 전송한다. 컨테이너는  org.apache.struts2.dispatcher.FilterDispatcher을 통하여 들어온 모든 *.action 요청을 받아들이도록 설정된 스트럿츠 빈 어플리케이션의 기본 web.xml 파일에 의해서 HelloWorld.action의 리소스를 요청합니다. 아래는 web.xml 파일의 설정입니다.

<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>

2.그러면 프레임워크는 "HelloWorld" 액션의 매핑정보를 찾고 바로 그 때 프레임워크가 적절한 클래스로 초기화되고 실행할 메서드를 호출합니다. 이 경우에 액션 클래스는 struts2HelloWorld입니다. 아래는 액션과 매핑된 "struts.xml"의 설정입니다.
<action name="HelloWorld" class="net.roseindia.struts2HelloWorld">
<result>/pages/HelloWorld.jsp</result>
</action>

3.이제 실행된 메서드는 메시지를 세팅하고 SUCCESS를 반환합니다.
public String execute() throws Exception {
    setMessage(MESSAGE);
    return SUCCESS;
}
프레임워크는 SUCCESS 일 경우 반환되었을 경우 로드 되어야 하는 어떤 페이지를 결정합니다. 여기에서 프레임워크는 컨테이너에게 HelloWorld.jsp를 로딩하라고 알려줍니다. 그리고 출력을 렌더링합니다.
스 트럿츠 2 프레임워크에서 액션은 폼과 사용자 리퀘스트를 처리하곤 합니다. 액션의 실행된 메서드는 SUCCESS, ERROR 혹은 INPUT 값을 반환합니다. 그 때 이러한 값들을 기반으로 프레임워크는 컨테이너에게 적절한 결과를 렌더링하고 로딩할 것을 알려줍니다.

4.컨테이너는 HelloWorld.jsp를 처리하고 출력을 생성합니다.

5.그리고 HTML 포맷의 출력이 브라우저로 전송됩니다.

어플리케이션과 소스코드 다운로드
시간을 절약하고 어플리케이션 설정에 노력을 쏟기 위해 튜토리얼의 소스코드와 어플리케이션을 다운로드 하세요.

출처 : http://jedison.tistory.com/67