JSP MVC2모델 게시판만들기 ③ 게시글 수정 및 삭제

2017. 5. 4. 13:12JSP





#1 게시물 수정

<input type="button" value="게시물 수정" onclick="open_win('BoardServlet?command=board_check_pass_form

&num=${board.num}','update'" />



board.js 의 open_win함수로인해 새로운 창이 열리고 해당안의 페이지에서 BoardServlet으로 이동한다

function open_win( url , name ){

window.open( url , name , "width=500, height=230" );

}

< borad.js>


BoardServlet에서 action = af.getAction(command) => BoardCheckPassFormAction.java



[ BoardCheckPassFormAction.java ]


[ BoardCheckPass.jsp ]


해당 페이지에서 작성한 데이터는 BoardServlet으로 넘어간다

command변수에는 board_check를 저장하고 변수 num에는 해당 게시글번호를 저장해서 넘겨준다


BoardServlet에서 action = af.getConnection(command) => BoardPassCheckAction.execute()


[ BoardCheckPassAction.java ]


boardCheckPass.jsp에서 넘어온 게시글번호와 입력한 비밀번호를 변수로 저장한다

DB에 저장된 데이터를 불러와서 비밀번호가 일치한지 확인한다

비밀번호가 일치하다면 checkSuccess.jsp

비밀번호가 일치하지 않다면 다시 체크하러 boardCheckPass.jsp 로 이동한다



[ checkSuccess.jsp ] // 비밀번호 일치


window.opener.parent.location.href= "BoardServlet?command=board_update_form&num=${param.num}" ;

window : 자바스크립트 창

opener : 비밀번호 확인 창

parent : 처음 실행한 페이지

BoardServlet에서 action = af.getConncetion(command) => BoardUpdateFormAction.execute



[ BoardUpdateFormAction.java ]


boardUpdate.jsp 페이지로 게시글데이터를 가진 vo객체를 "board"이름으로 request에 담아 넘겨준다



[ boardUpdate.jsp ]


"board" 파라미터를 이용해서 화면에 데이터들을 뿌려준다

command = board_update , num = ${board.num}

BoardSerlvet으로 데이터들을 전송한다

BoardServlect에서 action = af.getAction(command) => BoardUpdateAction.execute



[ BoardUpdateAction.java ]


넘겨진 데이터들을 vo객체에 저장한 다음 updateBoard메서드로 DB의 데이터들을 수정한다


< updateBoard >



[ 실행 화면 ]

[ boardCheckPass.jsp ]


입력한 비밀번호가 일치하다면 boardUpdate.jsp 페이지로 이동한다


[ boardUpdate.jsp ]







#2 게시물 삭제

<input type="button" value="게시물 삭제" onclick="open_win('BoardServlet?command=board_check_pass_form

&num=${board.num}','delete'" />


게시물 수정버튼과 마찬가지로 새로운 창에서 boardCheckPass.jsp 페이지가 출력된다



[ boardCheckPass.jsp ]


command = board_check_pass 와 pass 를 가지고 BoardServlet으로 이동한다

BoardServlet에서 action = af.getAction(command) => BoardCheckPassAction.execute



[ BoardCheckPassAction.java ]



[ checkSuccess.jsp ]


현재 window.name == delete 이다

window.opener.parent.location.href = "BoardServlet?command=board_delete&num=${param.num}" ;

윈도우 창은 닫히고, 게시판페이지내에서 BoardServlet으로 이동한다

BoardServlet에서 action = af.getAction(command) => BoardDeleteAction.excute



[ BoardDeleteAction.java ]

deleteBoard메서드를 사용해서 DB의 데이터를 지운다


< deleteBoard >



[ 실행화면 ]



[ 삭제전 ]


[ script로 실행시킨 winodw창 ]


[ 삭제후 ]