어플리케이션의 이해
어플리케이션은 현재시간과 서버시간과 Hello World 메시지를 표시하는 간단한 어플리케이션입니다.
튜
토리얼 홈페이지의 "Run Struts 2 Hello World Application" 링크를 클릭하면, request는
스트럿츠 프레임워크로 보내집니다. 그 때 스트럿츠 프레임워크는 입력을 액션클래스(이 경우에는
Struts2HelloWorld.java)로 보냅니다. 액션이 소멸된 후 결과는 응답을 렌더링하기 위해
"/pages/HelloWorld.jsp" 리소스를 선택한다
예제에서 액션 클래스와 액션과 결합된 매핑(struts.xml), 그리고 페이지의 세가지 부분의 뷰를 개발해야만 한다. 이러한 세가지 콤포넌트를 생성함으로서 어플리케이션을 모델, 뷰, 컨트롤러로 분리할 수 있습니다.
뷰<%@ 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;
|
컨트롤러 설정파일
스트럿츠 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 빌드툴의 출력이다.
여기 스트럿츠 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> |
<action name="HelloWorld" class="net.roseindia.Struts2HelloWorld"> <result>/pages/HelloWorld.jsp</result> </action> |
public String execute() throws Exception { setMessage(MESSAGE); return SUCCESS; } |
SSISO Community