Struts2

Hagi 2010. 2. 2. 11:37

 

 

아직 공부 초기 단계라 잘 몰르겠지만...

Struts2가 개발자가 비지니스로직, 결과 페이지, 환경설정에 집중하도록 하는 프레임워크란다. 그렇다면 Ation의 execute()메서드는 Servlet에서 request와 reponse를 한꺼번에 관리하여 개발자 편리를 도모할 것 같다.

 

이것을 알아보기 위해서 어제 하루종일 helloWorld예제를 돌려보았는데, 결과는 참패였다. action이 mapping되지 않는다는 둥~ location이 어쩌구 저쩌구... 근데 오늘 아침에 다시 와서 하니까 된다. ㅜ,.ㅜ 아~ 이런거 제일 싫은데... 이유를 모르겠다.

 

아무튼 기억나는 것은 ...

1. struts.xml 파일을 src 아래 넣어도 안되고 WEB-INF 밑에 classes에 넣어야 한다는 것이다.(log4j의 properties파일 처럼 여기가 default인갑다.)

2. log4j로 로그를 찍어보면

[DEBUG] (CommonsLogger.java) - Loading action configurations from: struts.xml
[DEBUG] (CommonsLogger.java) - Creating revision for URL: file:/C:/dev/java/project/j2ee/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/struts2-blank-2.1.8.1/WEB-INF/classes/struts.xml
[DEBUG] (CommonsLogger.java) - Loaded action configuration from: struts.xml
[INFO] (CommonsLogger.java) - Parsing configuration file [struts.xml]

  이렇게 나와야 하는데, 실행 되지 않았을 때는

[DEBUG] (CommonsLogger.java) - struts.properties missing 처럼 struts.xml missing이 나왔었다.

 

혹시 안되는 분들을 위하여 소스를 올려놀까 한다.

http://localhost:9090/struts2-blank-2.1.8.1/helloWorld.action

실행시 이렇게 하는데... 프로젝트 명이 struts2-blank-2.1.8.1이고, action명이 helloWorld이기 때문이다.

<?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="default" namespace="/" extends="struts-default">
        <action name="helloWorld" class="example.HelloWorld">
            <result>
               /example/HelloWorld.jsp
            </result>
        </action>
    </package>

</struts>

또 HelloWorld.java에서 당연한 말이겠지만 ㅋㅋㅋ

implements Action은 적지 않아도 실행이 가능하였다.

 

helloWorld예제 소스  struts2-blank-2.1.8.1.war

- 첨부파일

struts2-blank-2.1.8.1.war