'Struts2'에 해당되는 글 1건

  1. 2008.02.25 [Struts2] 스트럿츠2 셋팅 및 처음 입문용으로 좋은 Echo예제 (10)
 

어찌하다보니 스트럿츠2를 공부하게 되었네요.
책에 있는 예제를 이클립스로 셋팅법과 간단한 예제를 소개하려고 합니다-_-;
이 책에서 톰캣플러그인으로 사용하길래 그냥 Dynamic Web Project로 만들어도 될듯해서 ^^
(예제출처 : 스트럿츠2 프로그래밍 - 현철주, 정광선, 민상기 지음)

테스트환경 : Tomcat 6.0.16 + JDK 6 u 4 + Struts 2.0.11

이클립스를 실행합니다.
File -> New -> Project -> Dynamic Web Project선택
Project name을 HelloStruts2로 하고~ ^^
Target Runtime은 톰캣 6.0으로 추가를 해봅시다 ^^ New해서 Apache Tomcat 6.0선택하고 톰캣이 설치된 경로만 지정해주면 돼요 ^^
그리고 Finish를 클릭합시다 ^^

아.....스트럿츠2를 받아야죠! http://struts.apache.org/download.cgi 여기서 Struts 2.0.11버전을 받습니다.
압축을 풀고 lib경로에 있는 파일들을 방금 만든 프로젝트경로의 lib폴더로 복사합니다.
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.jar
struts-core-1.3.5.jar
xwork-2.0.4.jar

플러그인만 빼고 다 복사하면 돼요. 플러그인도 같이 복사하면 에러나요-_-; 해당 lib가 없어서 그런 것 같아요. spring plugin이런것을 사용하려면 spring lib가 있어야 하는 듯 해요 ^^

그다음 web.xml파일에 아래와 같은 filter를 추가해줍니다.
[code]
<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>
[/code]

Java Resources : src에 오른쪽 마우스를 대고 struts.xml파일을 하나 추가해줍시다.
이눔은 빌드되면서 classes폴더로 들어가게 됩니다.

struts.xml
[code]
<?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="echo" class="example.chapter3.EchoAction">
   <result>/WEB-INF/echo.jsp</result>
  </action>
 
 </package>
</struts>
[/code]
보면 struts1이랑 비슷해요. 대신 이눔은 package라는 놈이 있어서 비슷한 놈들 끼리 묶을 수 있어요.

이제 저 example.chapter3.EchoAction을 만들어 봅시다.
Java Resources: src에 오른쪽 마우스를 대고! EchoAction클래스를 하나 만듭시다.
EchoAction.java
[code]
package example.chapter3;

public class EchoAction {
 private String echo;
 
 public String execute() throws Exception {
  return "success";
 }

 public String getEcho() {
  return echo;
 }

 public void setEcho(String echo) {
  this.echo = echo;
 }
}
[/code]
요렇게 작성을 합니다. 보면 execute가 있네요. 그리고 get, set이 있구요.

이제 action에 작성한 jsp를 작성해봅시다.
WEB-INF에 오른쪽마우스를 클릭해서 JSP를 선택해서 추가합니다.
아까 ACTION에서 작성한 echo.jsp파일을 생성합시다.
echo.jsp
[code]
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>예제3-1: echo</title>
</head>
<body>

<s:form action="echo" theme="simple">
 <s:textfield name="echo" />
 <p/><s:property value="echo" /></p>
 <s:submit />
</s:form>
</body>
</html>
[/code]
간단히 보면 스트럿츠태그가 있습니다. 예전에 쓰던 <html:, <bean: 보다 더 좋아진 듯 합니다.
신기한 건 s:textfield해놓고, name을 echo로만 줘도 setter가 작동하는 듯 합니다-_-;
s:property도 getter가 그냥 작동하는 듯 합니다. 뭐 아직 저도 잘몰라서 뭐라 말은 못하겠네요.
어쨌든 이제 실행시켜보고 field에 뭐라고 쓰면 뭐라고 나올 껍니다-_-;

url은 http://localhost:8080/HelloStruts2/echo.action 로 요청합니다 ^^

사용자 삽입 이미지


음....더 공부를 해봐야할 것 같네요 ^^
 
Posted by 머드초보

댓글을 달아 주세요

  1. 초보자 2008.03.05 15:01  댓글주소  수정/삭제  댓글쓰기

    스트럿츠 정말 처음입니다. ^^; 위에 내용되로 따라 해보니 아래와 같은 문제가 생겼습니다.

    Cannot find the tag library descriptor for /struts-tags

    따로 설정해주는게 있는지요? 해당 페이지를 볼려고 하면 URL 경로를 어떻게 주어야하는지요?

    • BlogIcon 머드초보 2008.03.05 16:08  댓글주소  수정/삭제

      아....해당 jsp파일을 로드하는게 아니라 액션url을 요청해야해요.
      http://localhost:8080/HelloStruts2/echo.action
      echo라는 action으로 추가했으면 echo액션을 요청하는 겁니다.
      위에 안써놨네요 죄송해요 ^^

  2. 스트럿츠초보 2008.03.26 11:34  댓글주소  수정/삭제  댓글쓰기

    이클립스로 저렇게 작성하고 나서 어떻게 실행시켜야 하나요?
    이클립스에서 run해서 하면 되는건가요?
    그리고 저걸 그냥 웹브라우져에 url만 치고 들어갈수 있게 설정할라면 톰켓 어디에가다 소스파일을 위치 시켜야하는지 알려주세요..
    dgmeet@nate.com 여기로 메일좀 보내주세요.

    • 머드초보 2008.03.27 08:26  댓글주소  수정/삭제

      안녕하세요! 이클립스에 톰캣을 추가하고 그 추가한 톰캣에 해당 프로젝트를 추가하고, url요청하면 됩니다 ^^
      톰캣에 배포하려면 ANT나 WAR로 제작해서 톰캣매니저로 배포하는 방법이 있구요 ^^
      혹시 궁금사항 있으시면 mudchobo@nate.com으로 연락주세요 ^^

  3. BlogIcon Gizmo_j 2008.08.20 17:52  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    위에 있는대로 착실하게 진행을 했는대...
    404에러가 떨어지내여..ㅠㅠ
    EchoAction.java는 컴파일이 되서 build폴더에 들어 가있구여
    struts.xml 이놈두 classes 폴더에 들어가 있습니다.
    혹시
    이거 말고 사전에 머 다른거 작업해야하는게 있는건가여..?
    아~ 왜 이러지..ㅠㅠ 흑...
    이거 되면 Flex로 붙이는 방법도 찾아야 되는대...
    큰일이내여...ㅠㅠ

    • 머드초보 2008.08.21 08:32  댓글주소  수정/삭제

      음...이상하네요.
      사전에 작업같은 거 안해줘도 되는데-_-;
      이거 저도 아주 오래전에 한거라 기억이....
      web.xml에도 추가를 하셨는지요?

  4. 감사합니다 2008.10.16 00:39  댓글주소  수정/삭제  댓글쓰기

    더분에 좋은자료 감사합니다.
    몇가지 도움을 부탁하고싶습니다.(햔재의 소스 코드 기능 추가 변경)

    1. 수정또는 삭제시 별도의 페이지(비밀번호 확인)를 호출하게 하였는데.
    비밀번호 묻지 않고 MessageBox에서 진행여부를 묻고 그후 처리하는 방법으로 수정하고싶습니다.
    2. 페이지의 목록수를 콤보박스에서 입력 받아 자유로이 보기줄수를 조정하고자 할때는 어떻게
    수정해야하는지요
    3. 입력 또는 수정시에 구분값을 입력 받는경우 보통 Code TABLE에서 정의한 코드를 사용하는데
    이런경우 콤보로 입력 받는경우의 처리방법

    위 내용에 대한 도움 부탁드립니다.

    • 머드초보 2008.10.17 23:20  댓글주소  수정/삭제

      제가 스트럿츠2를 공부하려고 하다가 스프링으로 넘어가다보니 스트럿츠2를 전혀 안해봐서 모르겠네요 ㅠㅠ
      도움이 되지 못해서 죄송해요 ㅠ

  5. idoori 2009.11.09 16:32  댓글주소  수정/삭제  댓글쓰기

    앞으로 여기서 공부좀 해야겠구먼~