2014년 7월 9일 수요일

[chapter 6] Action (1) [자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

    action은 struts에서 실제 어떤 행동을 기술하는 부분으로써, 아주 중요한 부분이라고 할 수 있습니다. 모든 struts에서의 접근은 이 action을 통해서만 가능하도록 통일을 해야 개발의 완성도를 높일 수 있습니다. action을 구현하려면, struts의 Action class를 상속받아서 필요한 부분을 구현하면 됩니다. 
    게시판에서는 공통으로 호출하는 MainAction(로그인 처리를 대비해서) , 게시물 쓰기 페이지 보여주기 action(WriteAction) , 게시물저장 action(BoardcreateAction) , 게시물삭제 action(DeleteAction) , 리스트 가져오기 action(ListAction) , 답글 페이지 보여주기 action(ReplyAction) , 답글저장 action(ReplyitAction) , 글 수정 페이지 보여주기 action(UpdateAction) , 글 수정한것 저장하기 action(UpdateitAction) , 게시물 상세보기 action(ViewAction) 이런 action들로 구성되어 있다. 꼭 이렇다는 건 아니고, action이란게 이런것이란걸 말하는 것입니다. 
    action class를 생성하면, 그것을 struts에서 알게 하도록 struts-config.xml에 해당 작동 내역을 추가하여야 합니다. 
    각 action 소스를 하나씩 보면서 어떻게 동작하는지 살펴보도록 하죠. 

1. 공통 Action ( MainAction ) 
모든 action에 공통적으로 들어가야 할 기능이 있다면 ( 예를들면, 로그인체크,접속/비접속 체크,쇼핑카트 등) 그것을 구현해 놓고, 다른 action들이 struts의 action을 상속받지 않고, 이 공통 action을 상속받게 합니다. 이것은 필수요소가 아니라 선택사항입니다. ( 공통사항이 없다면 안해도 상관 없죠. ) 

package com.board.struts.action; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.struts.action.Action; 
import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 

/** 
 * author : suny<skyfafa@gmail.com
 */ 
// 추상 class로 생성 
public abstract class MainAction extends Action { 

              // execute method에 공통으로 수행하는 부분을 적어줌 
        public ActionForward execute( 
                ActionMapping mapping, 
                ActionForm form, 
                HttpServletRequest request, 
                HttpServletResponse response) 
                throws Exception { 
                                              .... 
                                              .... 
                                              .... 
                                  // 공통 부분을 다 수행했다면 실제 execute를 수행할 doExecute method를 호출한다. 
                        return doExecute(mapping,form,request,response); 
        } 

                // doExecute 는 이것을 상속받은 다른 action들에게 실제(execute)를 적어주는 부분. 추상 method이기 때문에 당연히 내용은 없음. 
        public abstract ActionForward doExecute( 
                ActionMapping mapping, 
                ActionForm form, 
                HttpServletRequest request, 
                HttpServletResponse response) 
                throws Exception; 



2. 게시물 저장 action 
게시물 작성 페이지에서 저장 버튼을 클릭하면 게시물 저장 action이 호출되고, 이 action에서는 이전에 만들어 놓았던, Board class와 BoardDAO class의 기능들을 이용하여 실제 저장을 수행하도록 하고 난 후에 게시물 리스트 페이지로 이동하도록 지시 합니다. 

package com.board.struts.action; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 

import com.board.struts.form.BoardcreateForm; 
import com.board.model.*; 

/** 
 * author : suny<skyfafa@gmail.com
 */ 

// 위에서 만든 MainAction을 상속받는다. ^^ 

public class BoardcreateAction extends MainAction { 

                // MainAction에 명시해두엇던 doExecute method를 이용하여 게시물을 저장하는 기능을 수행한다. 
        public ActionForward doExecute( 
                ActionMapping mapping, 
                ActionForm form, 
                HttpServletRequest request, 
                HttpServletResponse response) 
                throws Exception { 
                                // form은 게시물 쓰기 페이지에서 넘어온 form parameter들이 모두 들어가 있는 곳이다. 
                BoardcreateForm boardcreateForm = (BoardcreateForm) form; 
                                // board class에 해당 파라메터에 있는 내용을 옮긴다. 
                Board board = boardcreateForm.getBoardValue(); 
                                // 게시물 dao인 BoardDAO를 생성 
                BoardDAO boardDao = new BoardDAO(); 
                                // 게시물 저장 metho은 createBoard 호출 
                boardDao.createBoard(board); 
                                // 저장 후 게시물 리스트로 가기 
                return mapping.findForward("list"); 
        } 



struts-config.xml 에는.. 

        <action 
            attribute="boardcreateForm" 
            name="boardcreateForm" 
            path="/create" 
            type="com.testboard.struts.action.BoardcreateAction"> 
            <forward name="list" path="/list.do" redirect="true" /> 
        </action> 

이렇게 action을 설정해 준다.




오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(7/14)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/14)[기업100%환급]SQL기초에서 Schema Object까지
(7/14)[기업100%환급]안드로이드개발자과정
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(7/09)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/10)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/15)SQL기초에서실무까지
(7/15)안드로이드개발자과정
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(7/22)MyBatis3.X, Hibernate4.X ORM실무과정

주말(10:00~17:50) 개강
(7/12)SQL초보에서 Schema Object까지
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터
(7/19)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(7/26)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기