벌써 게시판 만들기 프로젝트 4번째 단계를 글쓰게 됬네요. (3)번까지 되짚어 보면 처음에는 HTML로 뼈대를 잡아주고, 스프링 프레임워크를 이용한 개발을 하기위해 MVC패턴으로 변경시켜주려고 환경설정을 했습니다.
그 설정은 저번글에서 web.xml / applicationContext.xml / board-servelet.xml을 만들어 디스패쳐서블릿을 잡아주었고 HandlerMapping설정으로 컨트롤러로 보내는 URL 매핑태그를 썼죠. 그러면 컨트롤러 파일을 만들어 설정 해줘야 하는데 데이타가 없기 때문에 DTO와 DAO 자바 파일들을 만들어야 합니다. 그 중 DTO파일을 이 글에서 생성하도록 하겠습니다.
■ board.dto 패키지 생성
먼저 프로젝트의 Java Resources로 들어가
src를 우클릭한다음 Package를 만들어줍니다.
이름은 이렇게 board.dto로 정했습니다.
다음엔 그 패키지에 자바파일을 만들어 주는데
게시판의 전체적인 데이타를 정해주는 BoardDto와
페이지를 처리하는데 쓰이는 PageDto
두개를 만들어 주었습니다.
■ BoardDto.java 작성하기
▲ BoardDto의 소스코드
1) BoardDto.Java의 코드를 위와 같이 작성합니다.
seq는 시퀀스로 게시판에서 입력받고 출력받는
숫자들을 저장하는 변수라고 생각하시면 됩니다.
나머지는 다 아실테고 regdate는 작성일을 저장하며
pos는 답변기능의 부모글 / depth는 답변기능의 깊이 입니다.
2) 이제 노란색 오류의 원인을 해결해야겠죠.
이클립스 상단메뉴 Source → Generate Getter and Setters를 선택합니다.
3) 선언해 놓은 필드(객체)들을 전부 선택하여
OK버튼을 누릅니다.
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 85 86 87 88 89 90 91 92 | package board.dto; public class BoardDto { private int seq; private String name; private String email; private String homepage; private String title; private String content; private String password; private int count; private String ip; private String regdate; private int pos; private int depth; public int getSeq() { return seq; } public void setSeq(int seq) { this.seq = seq; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getHomepage() { return homepage; } public void setHomepage(String homepage) { this.homepage = homepage; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getRegdate() { return regdate; } public void setRegdate(String regdate) { this.regdate = regdate; } public int getPos() { return pos; } public void setPos(int pos) { this.pos = pos; } public int getDepth() { return depth; } public void setDepth(int depth) { this.depth = depth; } } |
4) 그러면 자바의 장점중에 하나인 객체를 캡슐화하여
꺼내서 사용할수 있도록 코드를 자동생성해줍니다.
정말 간단하고 편리한 기능이죠.
■ PageDto.java 작성하기
PageDto도 BoardDto처럼 만드는 방법이 동일하니 똑같은 설명은 생략하고 코드만 올리도록 하겠습니다. Getter Setter 캡슐화까지 만든 코드를 올리면 엄청 양이 많더라고요. 자동생성전의 코드를 올릴테니 방금전의 절차대로 만들어주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package board.dto; public class PageDto { private int totalRecord = 0; // 전체 게시물 갯수 private int numPerPage = 0; // 한페이지에 보여지는 게시물 갯수 private int pagePerBlock = 0; // 페이지의 한 블럭 private int totalPage = 0; // 전체 페이지 private int totalBlock = 0; // 전체 블럭 private Integer nowPage = 0; // 현재 페이지 private Integer nowBlock = 0; // 현재 블럭 private int beginPerPage = 0; // 한페이지의 맨 위 게시물 } |
PageDto의 코드는 이렇습니다. 페이지를 처리하는 객체라 BoardDto와 따로 만들어서 사용해야 가독성이 좋고, 수정하기 용이합니다. 여기서 선언한 객체의 설명은 옆에 적어 두었지만 역시 모르겠죠.. 누가 정해놓은 규칙이 없기 때문에 나중에 페이징처리때 이해하시면 편하신 객체이름으로 바꿔 사용하시면 좋습니다. 그리고 초기화를 0으로 해주었는데 생략해도 상관없습니다.
이로써 board.dto 패키지를 만들어 자바파일인 BoardDto.java와 PageDto.java의 작성을 마무리 했습니다. 별일 없는 한 더 건드릴 필요가 없을것 같아요.
'프로젝트 > 1.게시판만들기' 카테고리의 다른 글
게시판〃(8) MyBatis로 DB 연동 (8) | 2015.12.07 |
---|---|
게시판〃(7) SQL 데이타베이스 생성 (1) | 2015.12.07 |
게시판〃(6) Controller 패키지 작성 (0) | 2015.12.06 |
게시판〃(5) board.dao 와 board.service 패키지 (13) | 2015.12.06 |
게시판〃(3) 디스패쳐서블릿 설정 + 라이브러리 추가 (2) | 2015.12.05 |
게시판〃(2-3) 글쓰기 / 글삭제/ 답변 살펴보기 (1) | 2015.11.25 |
게시판〃(2-2) 게시글 읽기 / 게시글 수정 (1) | 2015.11.24 |
게시판〃(2-1) 게시판 목록 [Board_List] 살펴보기 (0) | 2015.11.24 |