Struts2를 사용하려면 기본적인 셋팅을 약간 해야되기 때문에 Eclipse에서 셋팅하는 법을 보자. 일단 프로젝트를 만들자 프로젝트를 만드는 것은 기본적인 자바프로젝트랑 동일하다.
웹어플리케이션이므로 Dynamic Web Project으로 만든다.
여기서는 Server를 Tomcat 5.5를 사용한다. 이클립스의 톰캣설정에 대한 부분은 여기서는 생략하고 넘어간다. (서버설정이 되어 있다는 전제하에서.....) 프로젝트를 만들었으면 이제 Struts2를 올려야 한다.Struts2는 다운로드 페이지에서 받을 수 있다. 다운로드 받은 파일의 압축을 풀고 안에 lib안에 보면 스트럿츠2에서 필요한 jar들이 들어 있다.
많은 jar파일들이 있는데 스트럿츠2를 구동하는데 이 모든 jar가 다 필요한 것은 아니다. 기본적으로 필요한 파일들은 다음과 같고 나머지는 다른 플러인등을 위한 파일들이다.
- antlr-2.7.2.jar
- commons-beanutils-1.6.jar
- commons-chain-1.1.jar
- commons-logging-1.0.4.jar
- commons-logging-api-1.1.jar
- commons-validator-1.3.0.jar
- freemarker-2.3.8.jar
- ognl-2.6.11.jar
- oro-2.0.8.jar
- struts2-core-2.0.11.2.jar
- struts-core-1.3.5.jar
- xwork-2.0.5.jar
WebContent/WEB-INF/에 있는 web.xml 을 다음과 같이 수정한다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
Struts2Setting</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
이제 struts.xml과 struts.properties 2개의 파일이 필요하다. 만들어진 웹어플리케이션이 배포될 때의 이 2개의 파일의 위치는 WebContent/WEB-INF/classes/ 이다. 이클립스에 src폴더 아래 있는 것은 자동으로 classes로 배포하기 때문에 src폴더 안에 넣으면 된다. 이클립스의 Project뷰에서는 java파일 말고는 생성되지 않기 때문에 Navigator뷰에서 만들어 넣으면 된다.(이걸 어디다 넣어야 되는지 몰라서 어찌나 고생했는지....)
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="default" extends="struts-default" namespace="">
</package>
</struts>
struts.properties
struts.i18n.reload=true
struts.devMode = false
struts.configuration.xml.reload=true
struts.continuations.package = org.apache.struts2.showcase
struts.custom.i18n.resources=globalMessages
#struts.action.extension=jspa
struts.url.http.port = 8080
#struts.freemarker.manager.classname=customFreemarkerManager
struts.serve.static=true
struts.serve.static.browserCache=false
struts.multipart.maxSize=2097252
이렇게 하면 스트럿츠2를 구동하기 위한 셋팅은 완료되었다. (아~ 글 길다... ㅡ..ㅡ) 그럼 이제 돌려보자... 셋팅이 잘 되었는지 봐야되니까...
다음과 같은 PrintStringAction.java 파일을 만든다.(팩키지생성같은 설명을 생략한다.) 이 파일이 비즈니스로직을 담당한다.
package ex.struts;
public class PrintStringAction {
private String greetings;
public String execute() throws Exception {
greetings = "Hello World!";
return "success";
}
public String getGreetings() { return greetings; }
public void setGreetings(String greetings) {
this.greetings = greetings;
}
}
그리고 WebContent/ 아래에 printString.jsp를 만들어 준다. 이 jsp파일이 뷰단을 담당한다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=utf-8" %>
<% request.setCharacterEncoding("utf-8"); %>
<% response.setContentType("text/html; charset=utf-8"); %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pringtString</title>
</head>
<body>
<s:property value="greetings" />
</body>
</html>
이제 struts.xml파일에 위 2파일에 대한 맵핑을 추가한다.
<?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" extends="struts-default" namespace="">
<action name="printString" class="ex.struts.PrintStringAction">
<result>/printString.jsp</result>
</action>
</package>
</struts>
이제 프로젝트를 실행하면 된다. Run As. > Run on Server를 실행하고 주소에 printString.action을 실행한다.
위처럼 Hello World! 가 찍히면 struts 셋팅이 완료된거다.
셋팅에만 집중했기 때문에 다른 부분에 대한 설명은 거의 하지 않았다. 다른것들은 나중에...
나만 그런건가 ㅡㅡ;;
와꾸가 깨져서 겹치네여 ㅡㅡ;
아니요... 레이아웃이 깨져서 그렇습니다.
IE6에서만 그렇게 되는데 제가 IE7을 써서 모르고 있었네요.
스킨테스트는 했었는데 코드하일라이트가 적용되면서 IE6에서 겹쳐지는 문제가 발생하고 있는데 뭐가 원인인지 아직 못찾고 있습니다.
ㅠ..ㅠ
수정했어요.... CSS핵은 안쓸라고 했는데 별수 없네요.. ㅎ
ㅎㅎ 이제 괜찮네여 ㅎ
저도 코딩좀 배우고싶은데 흑흑
한국에가면 레이어 코딩법을 배워보고싶네여 ㅎㅎ
HTML 코딩을 말씀하시는 건가요? 레이어 코딩법은 어떤건지 제가 잘 모르겠네요.. ㅎㅎㅎ
저는 요즘은 좀 하나에 집중하고 싶은데 너무 이것저것해서 깊이가 약하네요.
현재 저의 작업 환경
Eclipse 3.4.1 (J2ee) 버전
Tomcat 6.0.18
Strust 2.1.6
모두 최신 버전 으로 선택 하였습니다.
허나 톰캣 까지는 잘 되나
스트럿처 에서 설정이 잘못 되었는지..
404 에러가 발생 합니다.
Tomcat 실행시
Server 라는 폴더가 생성 되는 되요
그곳에 web.xml
과 관련 있는건지..?
고수님 도와 주세요~
앗.. 저는 고수는 아니고요.. ㄷㄷㄷㄷㄷ
이것도 스트럿츠공부하면서 셋팅적어놓은 정도라...
Server폴더는 이클립스에서 설정된 톰캣의 값을 저장하려고 만들어 진것 같고요 저는 보통 직접 톰캣폴더만 만져보고 이클립스내의 서버폴더는 만져본적이 없어서요..
흠 혹시 web.xml에서 invoker부분의 주석은 풀어주셨나요? web.xml에서 invoker로 검색하시면 서블릿지정된 부분과 서블릿매핑된 부분이 나올껀데요 아마 그거 풀어주셔야 서블릿이 될겁니다.
그게 아니라면 스트럿츠랑 무관하게 jsp파일 하나 만들어서 실행되시는지를 테스트 해보셔야 할것 같은데요. 잘 해결되시길 빌겠습니다.
감사합니다 따라하기니까 드디어 작동되었습니다
도움되셨다니 다행입니다. ^^
포스트해주신 글 잘봤습니다.
초보인데 그대로따라하니깐 널포인터 에러가나네요
원인을 모르겠어요ㅠㅠ
너무 오래된 포스팅이라 최근버전의 Struts에서 똑같이 적용될지 잘 모르겠군요. 오류메시지를 보시면 어느 라인에서 오류가 나오는지 나오니까 메시지를 잘 보고 확인하시면 될것 같습니다.
북따악닥 따닥따닥~