Struts1.3.8의 간단한 예제(두수의 합 구하는 예제)
이번 예제는 간단한 구조를 가지는 프로그램이지만 스트럿츠의 흐름을 이해할 수 있는 예제 입니다. (두수를 입력받아 두수의 합을 구하는 Struts Simplr 예제)
add.jsp에서 사용자가 두수를 입력한 후 submit 버튼을 누르면 ActionServlet이 호출된 후 AddAction을 호출하여 비즈니스 로직(두수를 더함)을 처리 합니다. 그런 다음 처리 결과를 result.jsp로 포워드 시키는 예제 입니다. 이때 사용자가 입력되는 두수를 저장하기 위해 AddForm이라는 폼빈을 사용했습니다.
이 예제를 실행하기 위해서는 http://struts.apache.org 에 가서 struts 최신 버전인 1.3.8을 다운받습니다. 압축 받은 파일을 풀면 lib 폴더에 jar 파일이 있는데 jar 파일은 context의 WEB-INF/lib에 위치시키고 Java Build Path에 “Add Jars” 하여 라이브러리에 추가 합니다. . (전 이클립스를 사용했으며 struts-test라는 Tomcat 프로젝트를 만들었습니다)
1. /WEB-INF/struts_config.xml
--------------------
struts-config.xml
--------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- ========== Form Bean Definitions ========== -->
<form-beans>
<form-bean name="addForm" type="add.model.AddForm"></form-bean>
</form-beans>
<!-- ========== Global Forward Definitions ======= -->
<global-forwards>
<forward name="success" path="/result.jsp" />
</global-forwards>
<!-- ========== Action Mapping Definitions =========== -->
<action-mappings>
<action
path="/FirstAction"
type="add.action.AddAction"
name="addForm"
validate="false"
>
</action>
</action-mappings>
</struts-config>
2. /WEB-INF/web.xml
--------------------
web.xml
--------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- ActionServlet Config ==-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- ActionServlet Mapping ===========-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
3. JSP 작성하기
-----------------------------------------------
add.jsp (struts-test 컨텍스트의 루트에 저장)
-----------------------------------------------
최초 실행 시 add.jsp를 localhost/struts-test/add.jsp 라고 호출 합니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <html:form action="/FirstAction">
<input type=text name=op1>+<input type=text name=op2>=
<input type=submit>
</html:form>
-----------------------
result.jsp
-----------------------
결과가 포워드 되는 페이지 입니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
합은 : <c:out value="${requestScope.resultvo.result}"/>
4. struts Action, ActionForm 작성 하기
------------------------
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
-----------------
사용자의 HTML 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;
}
}
5. Value Object(VO) 작성하기
---------------------
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;
}
}
이번 예제는 간단한 구조를 가지는 프로그램이지만 스트럿츠의 흐름을 이해할 수 있는 예제 입니다. (두수를 입력받아 두수의 합을 구하는 Struts Simplr 예제)
add.jsp에서 사용자가 두수를 입력한 후 submit 버튼을 누르면 ActionServlet이 호출된 후 AddAction을 호출하여 비즈니스 로직(두수를 더함)을 처리 합니다. 그런 다음 처리 결과를 result.jsp로 포워드 시키는 예제 입니다. 이때 사용자가 입력되는 두수를 저장하기 위해 AddForm이라는 폼빈을 사용했습니다.
이 예제를 실행하기 위해서는 http://struts.apache.org 에 가서 struts 최신 버전인 1.3.8을 다운받습니다. 압축 받은 파일을 풀면 lib 폴더에 jar 파일이 있는데 jar 파일은 context의 WEB-INF/lib에 위치시키고 Java Build Path에 “Add Jars” 하여 라이브러리에 추가 합니다. . (전 이클립스를 사용했으며 struts-test라는 Tomcat 프로젝트를 만들었습니다)
1. /WEB-INF/struts_config.xml
--------------------
struts-config.xml
--------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- ========== Form Bean Definitions ========== -->
<form-beans>
<form-bean name="addForm" type="add.model.AddForm"></form-bean>
</form-beans>
<!-- ========== Global Forward Definitions ======= -->
<global-forwards>
<forward name="success" path="/result.jsp" />
</global-forwards>
<!-- ========== Action Mapping Definitions =========== -->
<action-mappings>
<action
path="/FirstAction"
type="add.action.AddAction"
name="addForm"
validate="false"
>
</action>
</action-mappings>
</struts-config>
2. /WEB-INF/web.xml
--------------------
web.xml
--------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- ActionServlet Config ==-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- ActionServlet Mapping ===========-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
3. JSP 작성하기
-----------------------------------------------
add.jsp (struts-test 컨텍스트의 루트에 저장)
-----------------------------------------------
최초 실행 시 add.jsp를 localhost/struts-test/add.jsp 라고 호출 합니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <html:form action="/FirstAction">
<input type=text name=op1>+<input type=text name=op2>=
<input type=submit>
</html:form>
-----------------------
result.jsp
-----------------------
결과가 포워드 되는 페이지 입니다.
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
합은 : <c:out value="${requestScope.resultvo.result}"/>
4. struts Action, ActionForm 작성 하기
------------------------
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
-----------------
사용자의 HTML 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;
}
}
5. Value Object(VO) 작성하기
---------------------
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;
}
}
댓글 없음:
댓글 쓰기