본문 바로가기

● 개인 공부/샘플예제코드분석

struts게시판 코드분석해보기5-deleteAction

1. 

다음의 삭제버튼을 누르게되면 deleteAction.action페이지로 이동하게 된다.


2.

delectAction페이지로 이동하게되고 정상처리되면 listAction페이지로 다시 보내진다.

<result type="chian">은 "이전페이지에서 넘겨받은 값들을 가지고 listAction페이지로 넘어간다" 정도로 생각하면된다.


3

excute부분이 실행되고 paramClass는 인자값을 전달하기위한 변수 resultClass는 데이터베이스로부터 가져온 글 정보를 저장하기 위한

변수이다.


일단 1번상자가 먼저 실행하게된다. getNo는 글 번호에대한 정보로 전달받은 글 번호이다.

4

select-all은 select * from sboard이고, where-no는 where no =#no#이다.

위 문장을 실행하여 얻어오는 값을 boardRes형식으로 넘겨준다. (이전글 참조) 

그러면 그 결과값이 resultClass에 저장되게 된다.(현재 글에 대한 정보가 저장되어있음)


그 후 2번상자가 실행되게 된다. deleteFile이라는 변수에 fileUploadPath(이미지가 저장되는 경로)에 있는 업로드당시 저장된 이름을 데이터베이스로 부터 가져와 그 파일정보를 저장한다. 그리고 그 파일을 deleteFile.delete()를 통해 삭제하는것으로 이해하면된다


5

그리고 ibatis를 통한 deleteBoard를 실행시킨다. 파라미터로 paramClass(현재 글에 대한 데이터가 저장되어있는 변수)를 넘겨준다.


6

현재 글에대한 모든 데이터베이스 정보를 삭제하기위해 delete from sboard where no=#no#을 통해 삭제처리해준다.


<deleteAction 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package board;
 
import com.opensymphony.xwork2.ActionSupport;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
 
import java.io.File;
import java.io.Reader;
import java.io.IOException;
 
public class deleteAction extends ActionSupport {
    public static Reader reader;
    public static SqlMapClient sqlMapper;
 
    private boardVO paramClass; 
    private boardVO resultClass;
 
    private int currentPage;    
    
    private String fileUploadPath = "/Users/ho/Documents/save/";
    
    private int no;
    
    
    public deleteAction() throws IOException {
        
        reader = Resources.getResourceAsReader("sqlMapConfig.xml"); 
        sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); 
        reader.close();
    }
 
    public String execute() throws Exception {
        
        paramClass = new boardVO();
        resultClass = new boardVO();
        
        resultClass = (boardVO) sqlMapper.queryForObject("selectOne", getNo());
 
        File deleteFile = new File(fileUploadPath + resultClass.getFile_savname());
        deleteFile.delete();
 
        paramClass.setNo(getNo());
                
        sqlMapper.update("deleteBoard", paramClass);
 
        return SUCCESS;
    }
 
    public boardVO getParamClass() {
        return paramClass;
    }
 
    public void setParamClass(boardVO paramClass) {
        this.paramClass = paramClass;
    }
 
    public int getNo() {
        return no;
    }
 
    public void setNo(int no) {
        this.no = no;
    }
 
    public boardVO getResultClass() {
        return resultClass;
    }
 
    public void setResultClass(boardVO resultClass) {
        this.resultClass = resultClass;
    }
 
    public int getCurrentPage() {
        return currentPage;
    }
 
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
 
}
 
 
cs