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 |
'● 개인 공부 > 샘플예제코드분석' 카테고리의 다른 글
| struts게시판 코드분석해보기4-viewAction (0) | 2018.11.11 |
|---|---|
| struts게시판 코드분석해보기3-writeAction (0) | 2018.11.09 |
| struts게시판 코드분석해보기2-listAction(메인페이지) (0) | 2018.11.09 |
| struts게시판 코드분석해보기 (0) | 2018.11.09 |