본문 바로가기

Programing/Struts

Action에 대하여

. Action클래스는 org.apache.struts.action.Action클래스를 상속 받아서 작성하며, 실제 프로그램 수행은 execute() 메서드에 의해 이뤄진다.

. 사용자가 GET/POST방식으로 넘겨준 파라미터들을 분석한다.

. 자신이 수행할 비즈니스 로직을 구현한 Model을 호출한다.

 

struts-config.xml문서 수정

<action path="/dataForm" forward="/form.jsp"/>

<action path="/data" type="st1.DataTest1" validate="false">

         <forward name="result" path="/resTest.jsp"/>

</action>

 

다음이 바로 웹상에서 http://localhost:8080/st1/dataForm.st 했을 때에 보여질 form.jsp이다.

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<style type="text/css">

            input,textarea,select {background-color:#ffd700;border:1 solid #d2691e;color:#4b0082};

             .ff{background-color:#ffcc33};

             .fa{background-color:#fae78b};

</style>

</HEAD>

 

<BODY>

<form method="post" action="data.st">

<table width="450" cellspacing="0" cellpadding="4" border="1" bordercolordark="#cc9900" bordercolorlight="#ffff66">

             <tr>

               <td width="25%" align="center" class="ff">

                 <font size="2"><b>이름</b></font>

               </td>

               <td class="fa">

                 <input type="text" name="name">

               </td>

             </tr>

             <tr>

               <td align="center" class="ff">

                 <font size="2"><b>ID</b></font>

               </td>

               <td class="fa">

                 <input type="text" name="id">

               </td>

             </tr>

             <tr>

               <td align="center" class="ff">

                 <font size="2"><b>Password</b></font>

               </td>

               <td class="fa">

                   <input type="password" name="pwd" maxlength="12" size="15">

               </td>

             </tr>

             <tr>

               <td width="25%" align="center" class="ff">&nbsp;</td>

               <td class="fa">

                 <input type="submit" value="정보 보내기">

                 <input type="reset" value="다시 입력">

               </td>

             </tr>

</table>

</form>

</BODY>

</HTML>

 

다음은 form객체의 action=data.st에 의해 입력된 정보들이 전달받아 처리하는 객체이다.

package st1;

import! org.apache.struts.action.*;

import! javax.servlet.http.*;

public class DataTest1 extends Action{

             public ActionForward execute(ActionMapping m, ActionForm f,

                           HttpServletRequest req,HttpServletResponse res)throws Exception{

                          

                           String s_name = req.getParameter("name");

                           String s_id = req.getParameter("id");

                           String s_pwd = req.getParameter("pwd");

 

                           ActionForward forward = null;

                           if(s_name != null && s_id != null && s_pwd != null){

                                        HttpSession session = req.getSession();

                                        session.setAttribute("s_name",s_name);

                                        session.setAttribute("s_id",s_id);

                                        session.setAttribute("s_pwd",s_pwd);

 

                                        forward = m.findForward("result"); //ActionMapping객체에서 Forward검색

                           }

                           return forward;

             }

}

 

결과를 알리는 forward객체!

<%@ page contentType="text/html;charset=euc-kr"%>

<HTML>

<HEAD>

</HEAD>

 

<BODY>

<h1>입력 정보</h1>

이름 : <%=session.getAttribute("s_name")%><br>

ID : <%=session.getAttribute("s_id")%><br>

</BODY>

</HTML>

 

이제 흐름은 조금 파악 되었으리라 믿는다.

다음 시간에는 실제로 쓰이는 MVC기반의 예제로 접근해 보도록 하자!