boardform.jsp
action 값에 의해 컨트롤러로 boardwirte.do 값을 전송한다.
BoardController.java
boardwirte.do 값을 받는 메소드를 생성한다.
DTO 객체 board를 매개로 서비스 클래스의 insert 메소드를 호출하고,
호출에 성공하면 int result에 1을 저장해서 받는다.
model 객체로 result를 result 라는 이름으로 공유하고
return에는 메소드를 모두 수행하면 이동할 페이지의 경로를 작성한다.
BoardService.java
서비스 클래스에 주입한 BoardDao의 객체 이름을 dao로 수정하였다.....
매개변수는 DTO 클래스의 board로 바로 dao의 insert 메소드를 호출한다.
BoardDao.java
board.xml
작성한 글을 테이블에 insert 하는 SQL문을 작성한다.
insert SQL문이니 id는 insert로 지정 하고,
parameterType의 board는 configuration에 지정한 Alias 값인 board로 지정한다.
SQL문의 끝에는 세미콜론 ';' 을 넣지 않는다.
역순으로 거슬러서 컨트롤러로 돌아간다.
BoardController.java
반드시 필요한 것은 아니지만
기능 수행 여부를 즉각적으로 알 수 있도록
콘솔창에 메시지를 출력한다.
이제 return 값에 지정한 경로로 이동하기 위한 뷰 페이지를 생성한다.
insertresult.jsp
조건식 태그를 사용하기 위해서
문서 상단에 코어 라이브러리를 호출한다.
result에 1을 받아왔을 때, 그렇지 못했을 때로 나누어 조건식을 작성한다.
이제 글을 작성해본다.
처음에는 오류가 났었는데 SQL문을 잘못 입력했었다.
시퀀스 이름을 잘못 입력한 것이다. (올바른 이름은 myboard_seq)
에러를 수정하고 나니 글이 잘 등록됐다.
작성한 글이 무사히 DB 등록되면 boardlist.do 값을 컨트롤러에 전송하여 게시판 목록을 출력하게 된다.
BoardController.java
기본 형식 틀을 만들었다.
이 메소드 내에 페이징 처리를 해야 한다.
기본 변수 2개를 정의한다.
int page (현재 페이지) 와 int limit (한 화면에 출력할 페이지 개수) 인데 여기에서 여러가지 변수가 파생된다.
BoardService.java
BoardDao.java
그룹함수 count 를 사용해 데이터 개수를 가져오는데,
하나의 데이터 이므로 selectOne 메소드를 사용한다.
board.xml
SQL문 id는 count로 설정하고 select SQL문으로 값을 돌려주어야 하기 때문에
resultType을 설정한다. (int로 설정)
역순으로 거슬러서 컨트롤러로 돌아간다.
BoardController.java
반드시 필요한 것은 아니지만
기능 수행 여부를 즉각적으로 알 수 있도록
콘솔창에 메시지를 출력한다.
db에서 글 정보를 가져올 수 있도록 리스트 객체를 생성한다.
현재 페이지 값을 매개로 getBoardList 메소드를 호출한다.
BoardService.java
BoardDao.java
리스트는 다중 데이터 이므로 selectList 메소드를 사용한다.
board.xml
rnum은 startRow보다 크거나 같고 endRow보다 작거나 같다.
xml에서는 <, > 를 인식하지 못하기 때문에 > ( > ) 와 < ( < )로 치환하여 작성한다.
여기까지 SQL문을 작성하고 나면
뷰 페이지를 아직 작성하지는 않아 브라우저에는 에러가 출력되지만
컨트롤러에 추가한 System.out.println 메소드로
index.jsp를 실행하면 콘솔창에 데이터 개수와 글 목록 정보를 담은 리스트 객체의 주소값이 출력된다.
컨트롤러의 boardlist 메소드에서 계속해서 작업한다.
page와 limit 를 포함하여
이 두 변수에서 포함된 파생 변수들까지 모두 model 객체 공유 설정한다.
board/boardlist.jsp
컨트롤러에서 전송된 값을 브라우저에 출력한다.
지금 입력한 게시글이 하나밖에 없기 때문에
SQL문으로 강제로 몇백개의 데이터를 주입했다.
문서 상단에 코어 라이브러리와 국제화 라이브러리 태그를 추가했다.
boardlist.jsp
index.jsp
이제 이 프로젝트의 첫 화면이 글 목록이 되도록 location 객체의 경로를 변경한다.
'스프링' 카테고리의 다른 글
Spring 게시판 생성 4 - 글 수정 (0) | 2022.10.11 |
---|---|
Spring 게시판 생성 3 - 글 내용(상세 페이지) (0) | 2022.10.11 |
Spring 게시판 생성 1 - 환경설정 (0) | 2022.10.07 |
STS에 Data Source Management 추가 (0) | 2022.10.07 |
MyBatis DB 연동 실습 2 - (2) 부서 등록, 부서 수정, 부서 삭제, 부서 상세정보 (0) | 2022.10.06 |