2014년 11월 12일 수요일

[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을 설정해 준다.

 [개발실무&100%환급]SQL/자바/스프링/안드로이드/닷넷C#/웹퍼블… 오라클자바…12-272454
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-111802
53 [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… 오라클자바…03-151609
52 [주말]C#,ASP.NET마스터 오라클자바…01-311705
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312372
50 [평일주간야간,주말]C기본&자료구조,알고리즘 오라클자바…01-311345
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… 오라클자바…01-191650
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111510
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032037
46 [개발실무&100%환급]SQL/자바/스프링/안드로이드/닷넷C#/웹퍼블… 오라클자바…12-272454
45 [기업100%환급,평일주간5일 교육]JAVA,JDBC,Servlet,JSP 오라클자바…12-191766
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141743
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-111802
42 [기업100%환급]웹퍼블리싱마스터(HTML5,CSS3,JavaScript,jQUERY) 오라클자바…12-091409
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011639
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-011812
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011289

댓글 없음:

댓글 쓰기