오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
이번 예제는 간단한 구조를 가지는 프로그램이지만 스트럿츠의 흐름을 이해할 수 있는 예제 입니다.
add.jsp에서 사용자가 두수를 입력한 후 submit 버튼을 누르면 ActionServlet이 호출된 후 AddAction을 호출하여 비즈니스 로직(두수를 더함)을 처리 합니다. 그런 다음 처리 결과를 result.jsp로 포워드 시키는 예제 입니다. 이때 사용자가 입력되는 두수를 저장하기 위해 AddForm이라는 폼빈을 사용했습니다.
이 예제를 실행하기 위해서는 http://struts.apache.org 에 가서 struts 최신 버전인 1.2.4 또는 1.2.6을 다운받습니다. 압축 받은 파일을 풀면 lib 폴더에 jar 파일과 tld 파일이 있는데 jar 파일은 context의 WEB-INF/lib에 위치시키고, tld 파일은 /WEB-INF에 저장 합니다. (전 이클립스를 사용했으며 struts-test라는 Tomcat 프로젝트를 만들었습니다)
Result.jsp에서는 JSTL을 사용했는데 Struts에서 JSTL을 사용하기 위해 http://www.apache.org/dist/jakarta/taglibs/standard/ 에서 jakarta-taglibs-standard-current.zip 파일을 다은 받은 후 jar 파일을 /WEB-INF/lib 폴더에 복사 합니다.
이클립스와 톰캣 플러그인에 대해서는 이전 강좌를 참고하시기 바랍니다.
--------------------
web.xml
--------------------
version="1.0" encoding="ISO-8859-1"?>
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
Welcome to Tomcat
--------------------
Struts-config.xml
--------------------
version="1.0" encoding="UTF-8"?>
path="/FirstAction"
type="add.action.AddAction"
name="addForm"
validate="false"
>
-----------------------------------------------
add.jsp (struts-test 컨텍스트의 루트에 저장)
-----------------------------------------------
최초 실행 시 add.jsp를 localhost/struts-test/add.jsp 라고 호출 합니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
:namespace prefix = html />
+=
-----------------------
result.jsp
-----------------------
결과가 포워드 되는 페이지 입니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
합은 : :namespace prefix = c />
------------------------
AddAction.java
------------------------
사용자가 submit 버튼을 눌렀을 때 호출되는 action 클래스 입니다.
WEB-INF/src/add/action폴더에 작성 합니다.
package add.action;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.*;
import add.model.AddForm;
import add.model.AddResultVO;
public class AddAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) {
int op1 = ((AddForm)form).getOp1();
int op2 = ((AddForm)form).getOp2();
int result = op1 + op2;
AddResultVO vo = new AddResultVO();
vo.setResult(result);
req.setAttribute("resultvo", vo);
//System.out.println(vo.getResult());
return (mapping.findForward("success"));
}
}
-----------------
AddForm.java
-----------------
사용자의 Input Form과 형태를 같이 하며 ActionServlet을 통해 사용자의 입력 값들이 자동으로 저장되는 AddForm 입니다.
WEB-INF/src/add/model에서 작성 합니다.
package add.model;
import org.apache.struts.action.ActionForm;;
public class AddForm extends ActionForm {
protected int op1;
protected int op2;
public int getOp1() {
return op1;
}
public int getOp2() {
return op2;
}
public void setOp1(int op1) {
this.op1 = op1;
}
public void setOp2(int op2) {
this.op2 = op2;
}
}
---------------------
AddResultVO.java
---------------------
결과값을 저장하여 request에 AddResultVO를 저장하여 result.jsp가 나중에 이 값을 이용하여 화면에 출력을 합니다.
WEB-INF/src/add/model에서 작성 합니다.
package add.model;
public class AddResultVO {
private int result;
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
}
댓글 없음:
댓글 쓰기